{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 分类问题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "import numpy as np\n",
    "iris = datasets.load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _iris_dataset:\n",
      "\n",
      "Iris plants dataset\n",
      "--------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 150 (50 in each of three classes)\n",
      "    :Number of Attributes: 4 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      "        - sepal length in cm\n",
      "        - sepal width in cm\n",
      "        - petal length in cm\n",
      "        - petal width in cm\n",
      "        - class:\n",
      "                - Iris-Setosa\n",
      "                - Iris-Versicolour\n",
      "                - Iris-Virginica\n",
      "                \n",
      "    :Summary Statistics:\n",
      "\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "                    Min  Max   Mean    SD   Class Correlation\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "    sepal length:   4.3  7.9   5.84   0.83    0.7826\n",
      "    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n",
      "    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n",
      "    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: 33.3% for each of 3 classes.\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
      "from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
      "Machine Learning Repository, which has two wrong data points.\n",
      "\n",
      "This is perhaps the best known database to be found in the\n",
      "pattern recognition literature.  Fisher's paper is a classic in the field and\n",
      "is referenced frequently to this day.  (See Duda & Hart, for example.)  The\n",
      "data set contains 3 classes of 50 instances each, where each class refers to a\n",
      "type of iris plant.  One class is linearly separable from the other 2; the\n",
      "latter are NOT linearly separable from each other.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "   - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
      "     Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
      "     Mathematical Statistics\" (John Wiley, NY, 1950).\n",
      "   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
      "     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n",
      "   - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
      "     Structure and Classification Rule for Recognition in Partially Exposed\n",
      "     Environments\".  IEEE Transactions on Pattern Analysis and Machine\n",
      "     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
      "   - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\".  IEEE Transactions\n",
      "     on Information Theory, May 1972, 431-433.\n",
      "   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al\"s AUTOCLASS II\n",
      "     conceptual clustering system finds 3 classes in the data.\n",
      "   - Many, many more ...\n"
     ]
    }
   ],
   "source": [
    "print(iris.DESCR)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 读取特征和标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class labels: [0 1 2]\n"
     ]
    }
   ],
   "source": [
    "X = iris.data[:, [2, 3]]\n",
    "y = iris.target\n",
    "\n",
    "print('Class labels:', np.unique(y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 查看数据维度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(105, 2)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(45, 2)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(105,)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(45,)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 对特征做标准化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StandardScaler(copy=True, with_mean=True, with_std=True)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "sc = StandardScaler()\n",
    "sc.fit(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.79595918, 0.77637684])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sc.scale_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train_std = sc.transform(X_train)\n",
    "X_test_std = sc.transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 机器学习分类模型建模"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 感知机"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import Perceptron\n",
    "\n",
    "#ppn = Perceptron(n_iter=40, eta0=0.1, random_state=0)\n",
    "ppn = Perceptron(max_iter=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda\\lib\\site-packages\\sklearn\\linear_model\\_stochastic_gradient.py:557: ConvergenceWarning: Maximum number of iteration reached before convergence. Consider increasing max_iter to improve the fit.\n",
      "  ConvergenceWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Perceptron(alpha=0.0001, class_weight=None, early_stopping=False, eta0=1.0,\n",
       "           fit_intercept=True, max_iter=5, n_iter_no_change=5, n_jobs=None,\n",
       "           penalty=None, random_state=0, shuffle=True, tol=0.001,\n",
       "           validation_fraction=0.1, verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ppn.fit(X_train_std, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.93066067, -0.7372463 ],\n",
       "       [ 2.50562487, -3.22008575],\n",
       "       [ 2.9272062 ,  3.29123431]])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ppn.coef_ # wx+b中的w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.,  0., -2.])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ppn.intercept_ # wx+b中的b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = ppn.predict(X_test_std)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 1, 0, 2, 0, 2, 0, 2, 1, 1, 1, 2, 1, 2, 1, 0, 2, 1, 0, 0, 2, 2,\n",
       "       1, 0, 2, 0, 0, 1, 1, 0, 2, 2, 0, 2, 2, 1, 0, 2, 2, 1, 2, 0, 2, 0,\n",
       "       0])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1,\n",
       "       0, 0, 2, 0, 0, 1, 1, 0, 2, 1, 0, 2, 2, 1, 0, 1, 1, 1, 2, 0, 2, 0,\n",
       "       0])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True,  True, False,  True,\n",
       "        True, False, False,  True, False,  True,  True, False,  True,\n",
       "        True,  True,  True, False, False,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True, False,  True,  True,  True,  True,\n",
       "        True, False, False,  True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred == y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Misclassified samples: 10\n"
     ]
    }
   ],
   "source": [
    "print('Misclassified samples: %d' % (y_test != y_pred).sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.78\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print('Accuracy: %.2f' % accuracy_score(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "\n",
    "\n",
    "def versiontuple(v):\n",
    "    return tuple(map(int, (v.split(\".\"))))\n",
    "\n",
    "\n",
    "def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):\n",
    "\n",
    "    # setup marker generator and color map\n",
    "    markers = ('s', 'x', 'o', '^', 'v')\n",
    "    colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n",
    "    cmap = ListedColormap(colors[:len(np.unique(y))])\n",
    "\n",
    "    # plot the decision surface\n",
    "    x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
    "    x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
    "    xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n",
    "                           np.arange(x2_min, x2_max, resolution))\n",
    "    Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n",
    "    Z = Z.reshape(xx1.shape)\n",
    "    plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)\n",
    "    plt.xlim(xx1.min(), xx1.max())\n",
    "    plt.ylim(xx2.min(), xx2.max())\n",
    "\n",
    "    for idx, cl in enumerate(np.unique(y)):\n",
    "        plt.scatter(x=X[y == cl, 0], y=X[y == cl, 1],\n",
    "                    alpha=0.8, c=cmap(idx),\n",
    "                    marker=markers[idx], label=cl)\n",
    "\n",
    "    # highlight test samples\n",
    "    if test_idx:\n",
    "        # plot all samples\n",
    "        if not versiontuple(np.__version__) >= versiontuple('1.9.0'):\n",
    "            X_test, y_test = X[list(test_idx), :], y[list(test_idx)]\n",
    "            warnings.warn('Please update to NumPy 1.9.0 or newer')\n",
    "        else:\n",
    "            X_test, y_test = X[test_idx, :], y[test_idx]\n",
    "\n",
    "        plt.scatter(X_test[:, 0],\n",
    "                    X_test[:, 1],\n",
    "                    alpha=0.15,\n",
    "                    linewidths=2,\n",
    "                    marker='^',\n",
    "                    edgecolors='black',\n",
    "                    facecolors='none',\n",
    "                    s=55, label='test set')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 用标准化数据做一个感知机分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "X_combined_std = np.vstack((X_train_std, X_test_std))\n",
    "y_combined = np.hstack((y_train, y_test))\n",
    "\n",
    "plot_decision_regions(X=X_combined_std, y=y_combined,\n",
    "                      classifier=ppn, test_idx=range(105, 150))\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/iris_perceptron_scikit.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Logistic Regression（逻辑回归）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "lr = LogisticRegression(C=1000.0, random_state=0)\n",
    "lr.fit(X_train_std, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined_std, y_combined,\n",
    "                      classifier=lr, test_idx=range(105, 150))\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/logistic_regression.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[6.51335792e-16, 4.95077314e-04, 9.99504923e-01]])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.predict_proba(X_test_std[0, :].reshape(1, -1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 通过松弛变量解决非线性切分情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "\n",
    "svm = SVC(kernel='linear', C=1.0, random_state=0)\n",
    "svm.fit(X_train_std, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined_std, y_combined,\n",
    "                      classifier=svm, test_idx=range(105, 150))\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/support_vector_machine_linear.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SVM核函数完成非线性切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "np.random.seed(0)\n",
    "X_xor = np.random.randn(200, 2)\n",
    "y_xor = np.logical_xor(X_xor[:, 0] > 0,\n",
    "                       X_xor[:, 1] > 0)\n",
    "y_xor = np.where(y_xor, 1, -1)\n",
    "\n",
    "plt.scatter(X_xor[y_xor == 1, 0],\n",
    "            X_xor[y_xor == 1, 1],\n",
    "            c='b', marker='x',\n",
    "            label='1')\n",
    "plt.scatter(X_xor[y_xor == -1, 0],\n",
    "            X_xor[y_xor == -1, 1],\n",
    "            c='r',\n",
    "            marker='s',\n",
    "            label='-1')\n",
    "\n",
    "plt.xlim([-3, 3])\n",
    "plt.ylim([-3, 3])\n",
    "plt.legend(loc='best')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/xor.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用Kernel trick在高维空间内找到一个可切分的超平面"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = SVC(kernel='rbf', random_state=0, gamma=0.10, C=10.0)\n",
    "svm.fit(X_xor, y_xor)\n",
    "plot_decision_regions(X_xor, y_xor,\n",
    "                      classifier=svm)\n",
    "\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/support_vector_machine_rbf_xor.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOy9eZxcVZn//z731tbVXdV79p0ECRCWBEMM2BCGwQiMjjs4okJmorjrON8fcZxRlBl03EZH0YlGx2UkM7jhKCCiYGMCxAaB0HRC9pC1u2vfq+6t8/vjVnVX79XdVd1V3efNq15V99Zdnuo0/dRzzud8HiGlRKFQKBSKSkOb7gAUCoVCoRgOlaAUCoVCUZGoBKVQKBSKikQlKIVCoVBUJCpBKRQKhaIisU13AOOhsaVRLli6YLrDUCgUCkUJefGZF3ullK2D91dVglqwdAE7d++c7jAUCoVCUUIucl10bLj9aohPoVAoFBWJSlAKhUKhqEhUglIoFApFRVJVc1DDIQ2JPCMhNd2RVChOEPMEwiamOxKFQqEYF9WfoM5IWrwtNDQ1IIT6I1yIlJKgP0jvmV7EIvWzUSgU1UX1D/GlUMlpBIQQNDQ1qOpSoVBUJdWfoEAlp1FQPxuFQlGtzIgEpVAoFIqZh0pQJeLhhx7mktWXsObcNXzx81+c7nAUCoWi6lEJqgSYpsnHPvgxfv7rn/P0C09z38776Hqxa7rDUigUiqqm6lV848G5/tWInp4h+2VrK6k9j0/4uh17OlhxzgqWr1gOwJvf9mZ+9ctfsfr81RO+pkKhUMx2ZlWCEj09yNaWYfdPhlMnT7Fo8aK+7YULF9Kxp2NS11QoFIrZjhriKwFSyiH7lHpOoVAoJodKUCVg4aKFnHj5RN/2yZMnmbdg3jRGpFAoFNWPSlAlYN0r13Ho4CGOHjlKOp3mJ//zE274qxumOyyFQqGoambVHFS5sNlsfOlrX+L1r309pmnyzlvfyfkXnD/dYSkUCkVVM6sSlGxtHVHFN1k2X7+ZzddvnvR1FAqFQmExqxLUZKTkCoVCoZha1ByUQqFQKCoSlaAUCoVCUZGoBKVQKBSKikQlKIVCoVBUJCpBKRQKhaIiUQmqBLx3y3tZOm8pl1102XSHolAoFDOGaUtQQojFQohHhRBdQohOIcSHp+K+g23zhrHRGzfveNc7+MUDv5j8hRQKhULRx3RWUAbw91LK1cAG4P1CiLLaL3x3u87XvmLrS0pSwte+YuO72/VJXffKtitpamoqQYQKhUKhyDNtCUpKeVpK+UzudQToAhaW734QiQru29mfpL72FRv37dSJREVJKimFQqFQlI6KcJIQQiwDLgWeGua9rcBWgPmL50/iHvChjxoA3LdT576dVtX0lptMPvRRA9UdQ6FQKCqLaRdJCCHqgJ8CH5FShge/L6XcLqW8TEp5WWNr4yTv1Z+k8qjkpFAoFJXJtCYoIYQdKzn9t5TyZ+W+X35Yr5DCOSmFQqFQVA7TqeITwA6gS0r55XLfr3DO6S03mTz+VIq33GQOmJOaKO96+7vYdMUmDuw/wKolq/j+ju+XLnCFQqGYpUznHNQVwC3AXiHEs7l9n5BSPjDSCRmZ4aRxcsC+OXIOwUSyqBvqTic3vsngne9NEkrCO98LiYwL3SkJJVMT/Bjw1R3/icsFOv1qwIzMAGAX9glfV6FQKGYz05agpJR/BMY1+xONwq4/Dtx3fSuYMRcu4R7z/Ftvsiopkeg/9gNbrLkp4rXjCWUAkQjI5tCw7wlbEl0Hl314KbtKYAqFQjE8FaHiKxZ7ysviYwObAuqNXUUlpzyDBRGlEEh4PEC6ftj3Ij5wNoeIDlOgCZuJrpsDkpdKWAqFQmFRVQmqGhkteZGGtGNg8hK25JDhQpW0FArFbEQlqGnGMSh5JVNxEkambztfZdkLcpRLuKYqPIVCoZg2VIKqMFzCDen+7YgP7HXxvl16bZIkVpXVf45KWAqFYuahElSF4/EAFMyxxd0kZZxYzNrUnBmStoEJS0dXw4IKhaLqUQmqBJw8+TIf+MA76e4+g6Zp3HLLVrZuLZ85+wBRSNqqssy6eN8uvTaJrpvWsSOoBxUKhaLSUQmqBNhsNu6880tcdNFaotEI1167jquu+kte8YqymrP3MbjKipy1Xtvr4pi1SZJGhqeOHwRgzly4wHnBlMSlUEwXpmkSi8Tw1HsQysusapl1CeqUOEqXeJqoCFMnvayW61ggl03qmnPnzmfuXMvItq7Ow7nnrub06ZNTlqAGYyUsADeRs27SobPs+bebADjvYzs5SCdej0pWipmLv9tPLBrDyBg0tapWONXKrEpQp8RR/qQ9io6OAycJEeNP4lFemd006SSV5/jxo+zd+2fWrbu8JNebLB4POJ3Q1pbb0XET7e3Wy3yyAli5UiUrReXSa/Ry3DhOUiZxCRdLbEtosbUMe+yp2Cme9T1LSqZwdjtZ5V5FRI8Uda6isphVCapLPI2Ojg1LQJB/7hJPlyRBRaNRbrvtTXz2s/+Ox+Od9PXKRWGyAqyEpZKVokLpNXp5KfMSGho2bKRlmpcyLwEMSTS9Ri/PdT9HRmawCRtJM0mXr4umliYcwjHquYrKY1YlqKgI48A5YJ+OjagY0uVj3GQyGW677U286U1/w403vnHS15tK2troS1Zdxl6gUyUrRcVw3DiOhoYuLMGPjg7S2j84yRyKHSIdTaNrOg3zGjh98jSZUIZ0QxqnwznquYrKY1YlqDrpJSFifZUTgIlBnZxctSOl5CMf2cK5567m9ts/Ntkwp5XVtjXQsQYYPlk16A0stJWt8bFCMYSkTGIb9KdKQyMph5pE+/1+BIIabw3OWif2WjupWIpYMIZnjmfUcxWVx6xKUKvlOv4kHgWsysnEwMRktVw3qes+9dQu7rvvh6xevYZNmy4B4B//8V+59trrJx3zdDI4WaV6LCd5Z2snl72iAUAlK0UfsUgM3abjqintwnGXcJGW6QH2X1myQxaop1NpZEwihaS20TJ/rmuqIxVLkQwlMZtMdJs+7LmKymRWJagFchmvzG4quYpvw4Yr6e6e2V0PV9vWwLFcsjq0l109J3G2BukgqJKVgmQiSc+ZHjRNY+Gyheh66dbfLbEtseaNpFX9ZHP/LbEtGXBcyB9ivj6fMzVnyJIFA5w2J3a3HRmXxAIxaltqhz1XUZnMqgQFVpIqlWJvttKXrI5ZlVVhslq50jpGzVvNLo50H+FI6ggpmeLImSNcMPeCSc3xHE4d5oR5AgMDGzaaRBNpkR5RiZfJZIhFYzTaGiEBp4+etlR8wkmraCWiRQiHwtQ317PMsUzNP1UJsy5BKUrL4GTlexKaN1jzVipZzQ5ORk6yL7wPTWjo6ISCIfbV7+M813kTSgSHU4c5ah5F5P4zMemW3SzTlrHCtWLYczRNw+FwYBomLY4WWhh6X5vdxryaeWrhbhWhEpSiZKy2WUOAdKxRyWoW0dXdhYaGt8lLJpkhFU+RCCY43jIxpdwJ80Rfchq8fwXDJyhd11mwdMGE4ldULipBKcqCSlazg2QiSSQewabZcDe4MdMmqbglSog3xMe+wDAYGEOSU36/YnZRXQmqt3e6I1BMgMJk1d4O+7BcLLo9nZy7QMnWq5mgL4hTOHE0OEhFU2g2DafbSSKWwAyZUDf+a9qwYWIOu18xuxjxX1wIUcxq06SU8oESxjM6hgF33w1XXFFgh6CoJgpdLF5e+hDhSJCXPEEANi1RFVU1kUwkSSaSLLAtoEf00Huq1xrqm+clG8vSEG3ANM1xK/oW6Ys4ah4dsE8iWaQvKmH0impgtK8k3wbuh2Fq7X7agClLUK3zdLZe0cn2XcCuXbBt27ivIaXkzJlTaJrO3LnzJh1TKBTkpz/9Mbfd9r4Jnf+f//nv3HLLVtxu99gHj8KuXY9htztYv37jpK4zlSw+tpn2H1qvl9/yEPdHLBNbUMmqGggHLAeWBr2B413H6Y53Y2ISDAVZ2LSQk5mTdJ/tprmpmQbRQFAG+1R4g7cLVXkrnCsgxRAVX1AG2Z3YPayKbzSvvvH4+JWD6b5/NTNagnpQSnnbaCcLIX5U4njGpq2NrW2w/W6fVU39YPO4To9EwsTjVre/ujoPtbW1kwonFAryX/91z4QT1Pbt/86b3/yOkiSo2tq6qkpQUFBRHdsMxyxfwHyyAvB6VLKqVJwuJ+lkmtPR0/RkenA5XCDBTJj48OHSXXgcHhLZBEGCOHDgEI4h28P5461wrugTRPR58cnhvfhG8+oDivbxKwfj8RFUDEUb6Q0p5TvGOrmYY8rF1m3NbL2iE1IpOH26qHOklAQC/r7tQMA36TjuuusOjh49xKZNl/DpT/8DAF//+he47rpXctVVF/H5z38KgFgsxtvffgNXX30xbW0X8otf/A/f/vbXOHPmFG984ybe8IZNQ6792c/ewZVXns9VV13Epz71cQB6e3u49dY3cd11r+S6617JU0/t4vjxo3z/+9/iP//zK2zadAlPPvn4pD/XdNHWZlVWczpuYk7HTfQcbuD+zk46U53THZpiEPVN9SxasYigO0jLwhaWXrSUBecuwLvAS219LY1LG3HVufpEDyYmQogh27rQ0dA4bhwf9j6FXnzDHT/a+2OdW26m+/7VzoTnoKSUPyt9OOOkrQ2PV6PVHqTnNFBXV9gMaQiRSBjDyGC3OzBNk1QqSSwWm1QV9clPfo59+17g0UefBeDRRx/myJED/OY3e5BScsstr+OJJ9rp7e1h3rwF/PjHvwYgHA7h9dbzrW99mZ/97FGamwd+mwoE/DzwwM/ZvXsfQghCoWDufh/mPe/5KBs2XMmJE8d529tew65dXbzrXe+ltraO97//4xP+LJXI4mOb6TqkDGwrlUQ8QTQRxa7bcde7MWtMAtEA8VAcd6MbNMuWCEZ+htH98cby4hvr/WJ9/MrBeHwEFUMZbYjvr3LPc4CNwO9z25uAx4DpT1B5WlpojUToiQLRKMyfP+SQwuqpqakZwzDw+XoIBHyTHuYr5LHHHuaxxx7mmmsuBSAWi3L48AE2bHg1d975cT7zmf+P6667kQ0bXj3qdTweL06ni49+9G+59tobuO66GwFob3+E/ftf7DsuEgkTjUZKFn8lMpqBrbJZml5CvhBO4cTZ4ETTNDSXhsvtIhlPkggk8M7x9tkTabkBm8HbMNRbT0pJOBDGXece04tvrPeL8fErF8X6CCqGZ8QEJaW8FUAI8SvgfCnl6dz2fOAbUxPeOPB4aPUAvb1WNTUoSRVWT3V1HrLZLIGAvyRVVCFSSj70oW28613vGfLeb3/7NI888gB33bWNq6++jo9//J9HvI7NZuM3v9nD44//jp//fCff/e7X+dnPfk82m+WBB56gpqamJPFWG4OT1WBPQJWopo5EPEEyaan4QjUhUukUGhp1njoS8QTpUBqzycSm2UiRQkdHSomNgdvDeesFfUFCgRCxSIwlC0f34hvLq68YH79yUayPoGJ4illYsCyfnHKcBc4tUzyTp6UFThvQ2wMtrcDQ6gksa5TGxqZJV1F1dZ4BFcymTa/h85//J970pr+hrq6O06dPYrPZMU2DhoYm3vKWd1BbW8fOnf814PzBQ3zRaJREIs61117PunUbuPxya3Xr1Vdfx44dX+cDH7Dmu/bufZY1ay6hrs5DJDL5vlbVxGCbpQ46eckT5NwFqqqaCiJB6/e+QW9AnpGcNvv97xbqC4nICJFwhOamZuaL+X2qvRqtZsD2YGWbaZoc9x3nZOYkqWSKubVzmeeZN0QFeNw4zkuZl3AJF/O0eSNeDyirim40lV7+Wan4JkYxCeoxIcRvgHsBCdwEPFrWqCZJ63wbPacNSzxRV0dEZjGMDEIIUqkUqVQKsBIXMKkqqqmpmfXrr6Ct7UKuuea1fPrTX+DAgS5uuOFVALjdddxzz484cuQgd975D2iaht1u59/+7ZsA3HLLVm6++bXMnTufn/+8/8cai0V45ztfTzKZBCSf+cxXAPiXf/kad9zxfq666iJM02DDhja++MVv8ZrX/BW33fZmHnrofu6++z/GHEKcaay2raH9y2tYfstD9BwGZ6u1vkopAMuHq8ZFOpUGoNXWSiutA94XQtBY34jbNT6F6tGeoxxOH0bXdHSpE/AFoBbOtZ87omrvjDzT9/5gWmwtZUsIxaj0ynn/mY7I/5Ee9SAh3oC15gmgXUr587JGNQKXLV0qO/7xHwfs67rkElYvXz78Cb299GQaOBPoJeZ0Dn9MDq+3gdbWOaUKtaI4cqSLZ59dPd1hTCnt7ZZbBaCslaoI0zR5eP/DpM00zQubCXeHMQ0Tz1wPXo+Xta61PJN8xprXEf3zOqY0cQgHa11rpzTeSoqlmrnIddHTUsrLBu8v1jvkGSAipXxECOEWQniklJU/M9/SQiuQznhxxmNQWwt1w6v8PJ7JddVVVBb5NvbKB7C6CAfCJM0kNTU1ON1OahtqCfeGSfgTOOocQGUp4yoplpnImAlKCPF3wFagCTgHWAh8C/iL8oZWOhYucUNvnJ6MA0yzb25KMfMZzbRWiSoqBykl/h4/gd4ATuHE3WQNC9bU1xALxkin0xADaipLGVdJscxEiqmg3g+sB54CkFIeEEJU1FiYlHLsHi+5aqpwbmq0NVMzhWKGcGcLg5NVXlQBKNPaaSYcCHPy6EnisTiLlyzGr/lJJpNoaNhr7aSCKbxhL7RUljKukmKZiRSToFJSynQ+AQghbFhiiYrAFY/ji0Ro9niKakTWOt8G+TVTqeSMrqaklEQiPuJx9W1uMHlRBVjWSuFIkODKoBr6myIKlW8O6SB1NsUh3yFSZormnmY8cQ9BGcTEREe3VHvx4/T6e/G6vUNUe4NVfeVUyg1W7Y2lIFRMnGIS1B+EEJ8AaoQQfwm8D/i/8oZVPIsOH+YE0DMBL7tIdxZOHgKnE5wz8494PO7i8GHlAj0chT6A7T8EPrZTuVVMAYOVb76Aj0AmgFar4Ug4CMfCGPUGTuHELuxkZIYgQVyaC6fdOUS1N5V+d+NVEComRzEJ6g5gC7AXeA/wgJTy22WNahzYDYPlL7009oEjsWMH21d9AdouLV1QiqojL6oASwGoklX5KPSny2azRIIRBIK558/F8BlEU1HqGutwe924NTfxbLzPecKm5f5kSes6LbaWAdcDrPmggvfLFXu576UoLkH9DbCzMCkJIW6UUv6qfGFNIatWWa07Jti+QzHzGClZKVFFaShUvsVDcUzTxO6yY3PbcGadhM+EiQViOD3W0pCxvPumUkmnVHtTy4hu5gX8B/C4EKJwIc1nyhTP1NPWZjmjz/mF1b5jx47pjkhRQbS1wZyOm0j1NNCxP8j9nZ08eryTk8bJ6Q5tyomEIkRCk19d4hIuS0qQzRIPxtHQqG2qRUPD5XFhd9gxMybpiLUIuNDDL89gL77C5DX4/VIylfdSFJegjgC3AT8RQrwlt29sNUK1sWWL1b6ju9tKVApFAYNbgHTsD9KZshLVbEhWqWQKX7cPX7evzz1ioiyxLSFLlmgwimmYOBwO0EAmJZlkhtraWiSSZCBJNpu1PPuwPPyklJjSHOLFlyWLKc1h3y8lU3kvRXFDfFJK+YwQ4irgXiHE5cD4ejiPgBDiu8CNQLeU8sJSXHNS5JohsmMH2+8G5syBLVumOypFhZHvBJy65SHAslWa6QrAw92HOZI6QkqmOHTqEMsXLB+1Q+5oHXPzzx2hDkxMnIYT92k3ERkZ6OVnRojH49TX1bNALBjzeqXyuxuvt95UKghnG2NaHQkhfi2lvCH3WgM+D/y9lLKY6musa7cBUeAHxSSo4ayOykZ7O9t35f7gqLkpxSjkbZW8HmakUe2p6CmeOvIUmtDQ0MhkM9QtrsPtdOMQDjIyQ4pUX4fcwdv5tUGDlW7+Hj+pRGrE+wpN0Dy3GbvdPhUfExio0itc1zSSSm+8xyuGZ8JWR/nklHudBf4h95g0Usp2IcSyUlyr5AyuplSSUoxAoa1Szzkn+4xqZ8ri367uLjQ0PI0ekODz+4j74zjnO60OuXJQx9xB2yMp3Zpam6bxUw3PeFV6StVXXkbrqPvvUsqPCCH+j2EW5kopX1fWyPrj2IpltcSSpmn4hd6yBe72WeIJNdynGIXC9h8vL+1f/AvVK1NPJVOEY2FswkZtQy1SSnoCPaRiKdKpNO4a96Q75lYS41XpKVVfeRmtgvph7vmLUxHISEgptwPbwRrim44Ytm5rZvvdOfHEFVcUrPBUKIYnP0/l27iXunNOcrC1syrXUwV9QWvBbIMdTbdG9Wvra4kFYyT8CRoWNkyoY26lMl5vPeXFV15G66j7dO75D1MXTuWydVtzbl4KOHBAVVOKMbG+x1hVVd6pottjLf6dM7fyk1UqmSIRTzBfn0/AGSART6ChUeOsIUqUTCxDOpnG5hh/x9xKZbzeesqLr7yMKJIQQuxlFM89KeVFJQnAmoP6VcWJJEZh+90+64WqphTjpL0dWjfupXlDJ14PFd1QsfdML9FIFICAERjQMdcu7QRlEIfXQeOcRhw4SJBAIhEIvHgRmihK1Vf2zzGKKm86jlcMZSSRxGgJamnu5ftzz/khv78B4lLKSS/WFULcC1wNtGC1kv+UlHLElbKVkqAApfJTTJqXlz6EszWIN2eqX2nJKh6NEw6Eh+z3m34OZw73CSey7iwmJgAit0RSIlmmL2OFc8W0Kt2Uyq46GHeC6jtAiF1SyivG2jcVVFSCyqGqKcVkaG+3npffYiWrapinGtxFNpLtd5fIzztJJDo6be62ae06qzreVgcjJahi1jLVCiGuzG8IITYCtaUMrprZuq3ZcqDYtUs5UCjGTVub9Vh8bDO+Jy/g4EF49HjndIc1KkmZHCCAGAkDY8Tjp0rpNp33VkyeYpwkbgO+J4Sox5qTCuX2KfLk1kz1VVMKxQRYbVsDHWt4eelD3B+xktR0zlOFg2FkVlLfVA9AyB9CCIGrZqhybTjy8utilG7ZbJZATwC3x02Nu6Zkn6FYlV0iniAeidPY2oimTdqDQFEiRk1QOeeIlVLKi4UQXqwhwdDUhFZ9bJ3zC2WRpJg0i49thmPW63yyWrkSGvSpW/ibSqbx9/gBcLgcgCDgCwAwb/48jupH+5RrOnrfHJTM6aokkkW61YesGKVbyB8iEo6QiCVYuHxhUc1Hi6GYe0sp8Z3xYZgGmq7R2NJYknsrJk8xc1DtUsqKmFypxDmoISjxhKLEdBnWWipgSuapfvKdRqKNf6R21YuYmNS4aoid8YLbh+YwcLvdrFi4grRI9ynXZFYSJtyn4msVrVxY0y/MHU3pZpomT+5/klPGKUxMGlobWNSwaMD1ByvjRrve4PfGUhAe7T3Ki2deJCVTuHQXa89Zy1zn3LL9fBVDmYxI4p+ABPA/QCy/X0rpL3WQY1EVCSrPjh1s7/5rVU0pSkqX0S9RL4fvn5Rw329fxmjdjRBgs2skIkkQViWl6QKZlTQsamBV7aqSqPSePfUs+3r3odt0skYWYRM0L23GLuz9rTkKrjfa/YBxxdKT6WH3wd1ggM1mwzAMahprWDtvrVL5TSGTEUnchiU1bweezj06ShveDGTLFmtxb759R16upVBMgtW2NX0tP3b9ETr2B0sqqhACXOf8GQBHbR02Vx2JcIJEKEFtsxt3vRuBIO6Pc8I8AQz0oxNCoAsdDY3jxvEx72eaJof8hxAIGuY1YHfayRpZEuEEBsaw1xvtfuONZZ9vHxjgcDponN+IJjSSoSRHU0dL8wNVTIpizGKXT0UgM5Wt25qtamoXSoauKBmLj222XhwbOE812aG/dCpNPBZHtwlq6t0YqQxmxgQkul3H5XaRCCVIx9MkkglwT86PLhwIk8lmcLqd2F12ahtrSZ9JEw/EqfH2iyXG00G32FiklPgDfgSCuqY67C47TreTZCyJP+BXWuUKoCi5ihDiQiHEW4UQ78w/yh3YjCI/xKe69SrKwGCJemfKekyEoC+Ijo6z1o1u00mEErg8LpweKzFpukZNvZU4Un6rVcZEu8yapkkkFEFHp7bJygbOOic2p62vihrueqPdbzyxREIR7KYd3aHjqrPer2uqQyIxwyamaY7581KUlzETlBDiU1ht3/8D2AT8GzAlTuYzCTXcpygn+aG/I7+9gKd+NLH1VOlUmlg0TuD5FWgOnUQoRDoWRtM1dF0n6osR6Y2g260Ot42pRlLJlNVlVo6/y2w4ECabzbLItQjTNEnGkiRjSewuq/9TOpAmm82Oq4NusR1vpZSE/WHm6/PRa3Ti0TjJaJKMkUE4BPPEvGFdNBRTSzHroN4MXAz8WUp5qxBiLvCd8oY1MxlgOLtrl1L5KUrOatsa60XBeiqvB6Q9SUOjGNUvLhKKIATIYys48xjYFzxvDfehk+ipw94QI51IUettJLpvFZevbyYaitI8p4WXH6inYe0+PPMjRfvRRUOWz998MR+j2+CMeQYTEx2dZtFMJpshFovR4GkYdwfdsbzxErEEhmnQaGuEGJwO9/sMLtYX02hrJBqKKsn5NFOMim+PlHK9EOJprAoqArwgpZzy1YNVpeIbA2WRpJgK2tvBu/ooK297ALQsDgc4hXNYZVsykSQcCCOlREpIJZNEw1GQlrpPCHB7a/n1jxfy6P95ueZ1EW79+wz3fXsxD/5vPa99a4h3friXYpcwhQNhEvHEiO/ruk5jayO6PvqC4IlgmiaBnsCow3g17hq8jd6S31sxlAl31AU6hBANwLexFHxRYE+J45t1qGpKMRW0tUGq7WmyqTpShgF1CUwtjdvhGNL11VXjwlUzdh+j9/8zeOprefB/F/D4Q9a+8SYnAG+jd9oSgK7rtMxTMvJKZ8wKasDBVmsMr5Ty+XIFNBozqYIaQH7NlKqmFGUg+drvIdPOPqfxtDOEZjMQmkQPtU7ISklKuPmKc/q27911aFzJSaEoZNzroIQQawc/gCbAlnutKBVbtliGswcOTHckihmIiHlBN/q2Hal69KQXm38BPYcbuL9zfKo/KeEHXx1YfXz/35vpPetTwgJFSRltiO9LuWcXcBnwHCCAi4CngKzK99sAACAASURBVCtHOE8xUfIqPzXcpygh+v51ZNc+arnkmTYrWekm+v51LD67jK5De5Gyk4PCSlIrV8L5jguGrYjyyalwzukHX23h/36sEei18dfv8lNTW4PNblcVlWLSjNbyfROAEGInsFVKuTe3fSHw8akJbxaRc0Rnxw5lOKsoKbvvW0bNnzdx0U1PI2vDiJiX53euI3FwGW1t0LN7DSceXcO118I+00pWO+8zuHhxK2/+28CAawkBtXXmgDmnmlqDxqYgNe4sQkCgN8iD/7ua2jpzyPmlQnWxnR0UI5I4L5+cAKSULwghLiljTLObLVvYCmy/O1dNqXkpxSSQElIpePx7ywh2LuPaa+GRR2DPHli/HrJZ6/09OdnTtdeu4ZHPrWHPcyFSNxzmvOR+Gm0DXdTf/LeBPlWflBD0JejtzpJKWq7n//0NB0/+robrb0r0HVdKCr34bNhIy7TlWA4qSc0wiklQXUKI7wA/wuoH9Q6gq6xRKQZaJB04oKopxYQQAq691nq9Z09/Ilq/3to/0vtXrK9n4UobLz5pGdI6WwdaKfUnHcn1Nx0mFqnjjw+v5PGH5mGaIa7966O888N6WYb5Cv32AKvXk2SIKlFR/RRjdXQr0Al8GPgI8GJun6LcKMNZRQkoTEJ58slptPfPt69h8bHNo3b7jUViGJkMb/7bCJrmQbc1AYLrb3oZI5Mpy+dRXXJnD2MmKCllUkr5FSnlG3KPr0ipfhOmkq3bmtk65xfWeimFIkcqFSMQOIlpGqMeJ6U1rJdM/pFodCeGkeSRRyAaDRAKnSGblTzyCJimH9M8i5TWduEKlEIX9bzq74XkC4T8IaSEB//nHIQQCGFD17384vuNBHqDZfncE/X+U1QfYw7xCSGuAD4NLC08Xkq5onxhKYawZQvc7VMqPwUA2awkHD5LNmsQi/nweOaOqLp75BH4wx+CzJnzR845xyQY3MPjj28gEunhVa+CXbtq6OhwceGFvWzcCM88U8NTT1kLaPOVVjYLmmYZ03Yd2kvPbnAueIkUXRx5fAUvPerlL99wgptv9/Hf36jnNz/xABHe/88ZHE57ST97MV1yFTODYob4dgBfxpKVv7LgoZhitm5rtl6o4b5ZTXs7PPhgsK9yisfDPPxwZthfCSHgl7+Enp4/sHy5iRAQCv2Js2dP8fvfW0nn8GEf6XQvdrt1/Ctf6aehQXL8uLW9Ywd885tWkgJ4hbaGA895iBk+XM0Rlmx6kfV/91MW3fhzHjn+W5a87v/4y1sP43ZniUWiJf/8LbYWzrWfi0M4MDBwCEfRzREV1UUxCSokpXxQStktpfTlH2WPTDEsW7c1W4t6d+2yEpViViElJJOSjo4Au3eDpjnYvVvy1FN+UqmBw3IAmQyYZhDo4oEHwG5v4LnnYsAfMU2BadpJJuMEAmc4cEAANh5/PE0gEGHJEjBNSCZh377+JPXLp49y2fsepWGRoM7ZwtxFDlZu8pNwGgiXjbTTZPmNB9j07h7qvHVl+Tm02FpY61rLxpqNrHWp7rczlWLMYj8H6MDPgFR+v5TymfKGNpQZa3U0UVRb+VlJNBrg4Yd72LvXia7PxzCOctFFgte9bhk229DhtKefvp/vfOcFstlzgDXkBbktLbfjcjWRTj9LbW2aZHINuu7CNM9wySUOXve6pWiaIJu1ktO+fdb1tv7kp7QsitHote4lPQEQJqahk+xuxNEcQrMbuBwar3a/esp+LorqZTIt3y/HcpL4Vyx3iS8BXyxteIoJkbdIyqv8FDMeKSWJRICNG0HTWhDCgaZ52bhREo/7hxwfjQbp7u7i+usBrgZWAW6uvjqNEAcRwoGUBjfeaKJpOkJ4EMLOhg1pUqkIYA0D3n57/zWbFodp8BZMX2smINDtJnV1lpWSEakhlTFL2o5eMfsoRsW3aZjHNVMRnKII2tr656bUvFRVk8kk8ftfJpNJjXhMPG7NPT35pBNNs7rQaloTu3dbc1GmOVDaffDgHzAMkwcfPAeYB/iBtTz2mJNk8llSqZNoWj0PPODFMI5gmmcQwrre2bMHcio/q4LK43/ZSzBcoBzM6oDMPVs4bfYBXn/3d3aOK1llMhnOnDhDPBov+hzFzKPYlu83CCH+nxDin/OPcgemGB99MnTVVr4qkRLC4bNkMgkike4hc0nWMZJYzJp7ev55J5deGuKjHw2xdm2CvXutuaho1Kqislmrejpxwpp7Ms06NO1x3v3udiAG1BCJ9HL11b/D45EcOWLidB7nbW/bz8UXh/nzn5M8/ngvfv8pvv71KF1dcN558NWvwqFfrsPEJBDOIJGQdoBmPUskUs/0e/0d28ycjpuGSNTHIuQLkUwk8Xf7GU/HBcXMohiZ+bcAN1azwu9gddhV/aAqDWWRVLW0t0MsFuXSS1MIAel0goceilNb6x7wT5hOx5HSwOGACy8Ms3ZtmEgE1q61hAwOBySTYX7yk7kkk3DNNc+jaSaaBtnsc7S0xHn55TgtLdDbC5oWp6cnSji8BCF60bQkwWCcRMIkHNZ56SW4/PIYuu6jpaWOCy+0hvtet24Zv7xnExe//WlESxgRbYTDa2DOiT6vP33/Omxnlw34nHmJOnTS7enk3AUDLZTyZNIZXg68zGnT6nJ75OwRVresVkKIWUgxVkcbpZQXCSGel1LeKYT4EpZgQlGBKIuk6iLvlbdnj49EAtranLS3p9i718fGje4BXnZ2ew1udyNtbdkhHnd/8RfWtq67+lR3hnERbW0BFiwwOX4cnE6TefMiBALWPVeuNDj33Dk8/3wLppkhFGqgvt7Ds89mSCYzuN311NR4mT8/hd8fJZ2uQ8r+JKUdWAaFHWL2XT7m511tW9PXjr7nsGWh5PUwoCfVkZ4jHDWO4nA40NM6wUCQ/d79gPLam20Uo+J7Skp5uRDiSeCNgA+r5fuqqQiwEKXiGx+qrXx1kEhEefDBU+zda0PXl+ZUeSY33LAIp9M97usNVt2BNTx3++1Wcskv3s377mUyJzGMGIFAI0I4yWb/TH29gdN5MbpuwzS7ueQSJ69//dKyeOu9vPQhnK1BVq6Ec8W5/Pal35Ihw5ylcwieDmKkDdzNbhobG1nrUq3oZiKTUfH9Ktfy/QvAM8BRYGdpw1OUgwEWSUpAUbHE476cKq8JIXQ0rZGNGyEWm9hyw8GqO+hPTjDQe89yLYvx/vcLhGhCSh0hTN7+9iyaZkOIeoSwsWFDilSq9ItugQFefw/s3UNKpnB73NjsNjzNHgCSwSSJbKIs91dULsUkqH+TUgallD/Fsjs6D7irvGEpSsaWLcrHr4JJJqNkMimeeMJKBgCa1sATT+jEYn7OnNk/qqqvkEQiRCBwgkzGGKC6g4FOEPkKCsA0fUgJ99zTAOgI4UfKBu6910s2G8jFY6n6otHyrc9fbVtD05Nv5FSXjXgyi96gk8gmcNY6sTlsGIZBNpwd+0KKGUUxCeqJ/AspZUpKGSrcp6gC8vNQyiJpShk8ej7caHo06sup8hxcemmIj3wkyKWXhnnuOTvt7b2EQmeIRnsYbAxuDPKHTadNIpEeksk499zjp7OzX3V33nnQ1WUlKdO0ktOTT8K6dUn+7u9imCZ0d2s0Np7iox89S0ODic+nkU77eM97XmbtWsnzz0N7e4pEojxVFEAs5mf+qTZO/OJawmezBM4kOH2ml4wtQ5Ys9ZF6peibZYwokhBCzAMWAjVCiEux2r0DeLFUfYoqYuu2Zmhvt8QTu3Ypw9ky095uCRHyZqv5qsXp7J8ONIw0ppnC4YA1a+KsWxcnGoWODgiFomiagWEY/OhHYV56KcH8+TV84hPw7W/D/v2werX13WPHDujsDLB8eZa3vhWCwRC63oTTaUPT4Pzz4cgRCIdB1+H4cStRCRFB12HePGuYsampl2Qywpo18Nxz0NwMwWCCdevmkkpZKsFUKkxNTXnsi5JJa2HwK+rnYDx+MdnlnaTdAYRmomdq8Lq8JOIJ3LXqz89sYTQV32uAdwOLsNwj8gkqAnyivGEpyoJqKz8l9CvzrO3BXWzzCjybzUFdXQttbUbfvmwWMhlJPB5i714vr3pVLfv328hkfJw5s4hUykpOkYhVFaXT8OKLJrFYkCNHAJxkMinSaT8nTszBMODFFy0Zutfb763n88GBAw1s2ABLl0p8Plixwk1jY5irrpK8+tXWnJXT6cFud/WpBGtqvGX7uXm9c8lkcp184g3QeWHfe6cW/54nOMNcRxThEwNUf4qZSzEqvjfl5p+mHaXiKyHt7WzflfufXFVTJWewUg4GdrEdjWg0zOc+d4aeHjuwBDiC3Z5FysVoWg1gVWKJhJVETLMXl8tPOl0LtCLlURobBU7ncjTN+g7a0ACBQH8119gIwYJ2TcXGNp3kR6eX39Kv+st3+FVUN5NR8S0SQniFxXeEEM8IIa4rQ4yKqSRnkbR1zi/UvFQZGKuL7UhIKUkmfbzvfQDNCKEDjdxxBwjRL1L43OfyknETTQvy93+fP96BEB7e9z6JlP3efLffPrCD7mCVX6UnJ7CGRtvaGLXDr2JmUUyCuk1KGQauA+ZgtXv/XCluLoTYLITYL4Q4KIS4oxTXVEwAZZFUcgqVcnkGd6kdjmQyQjqd4Z577ICGlMcAN5//vIaUcaS0pNZ33JFX5QXIZrN86Uu1iFxHWSmbueceMIzjZDJHkNLkm9/sv7eUDFH5PfIIhELdBAInq0KIMFyHX8XMo5gElf9edT3wPSnlcwX7Joywvhp+A3gtcD5wsxDi/MleVzFOtmyxBBR5R3RVTU2awuG99evhE5+wnvfsGTlJSWlVT+Gwj3vugZ4eOy0tB/mHf+jGbj9IOu1ACPjkJ304ndYclMtlsm1bEJcLYjEdhyPAXXcFaG6O0dMjSKf9vP3tZ/B4/HR1WcN6d9xhPe/bZw37bdtmxfbEEwl+97sgqVSMZDI8ZiKtFBYf28y+L9/EwYP0mdKqZDVzKMbq6GkhxMPAcmCbEMIDlGJBwnrgoJTyMIAQYifweuDFElxbMU6URVLpEMKaIyqc18kP9zmdQ4fS8oq/q65KAxnSabDZznL++b2kUrBsGRw8mMXtrkGIOA0NWdJpjVe8Io7NlmXFCti3L4zHYwkg5syBcNhHa6vENGOsWBHE72/E5bKh67BmjXXfvLee0wkej6+vo24k4uPxx724XKIqDEja2oCOmwDoMvq9/pSQovopJkFtAS4BDksp40KIZqxhvsmyEHi5YPsEVu+pAQghtgJbAZY0NZXgtooRUYazJaOtrV+tB/1JanByGqj4c7JhQysLFmR46aUwJ0/Wc8UVThYtShEOS9avb6SuzsHll2s88QQsW1aL293MsmVZenrgssvA5YIlSwzOng2wcGE99fX1ZDISXQ+wZEkrUlqxXXllv+1RPJ4gFIpjGBqaZnXU7ewMs2FD/RDPv0qn0Ovv/kinElJUOSOq+IQQ86SUZ0Y9uYhjRjn3LcBrpJR/m9u+BVgvpfzgSOcoFd8Uklf5qSRVdgYr/kwzRF3dWSIRB7q+eIg331gKwVCom9/9LsgLL3jQtCYM41iu4+5ybLah30n9/hM89licF16wRBameZqLL7bx+tcvR9OqKDsNor0dzvvYTrweRnROV1QGE1HxPVDEdYs5ZiROAIsLthcBpyZxPUUpaWtTFklTxEBvPEt9d/PNoGnNw3rzjaYQNE2DZDKU8/ZrRggnQtSxcaPViXcw6XSCTCbOFVdoaFoDmuZBCCevepVBKhUu90cvK21t9AkpOvYH6Ux1ctI4yUnj5HSHpiiS0RLUxUKI8CiPCDB3Evf+E7BKCLFcCOEAbgJ+OYnrKUqNskiaEgoVf1KGyWYz7NzpQNMso9S8N186ncj1hBpZIRiLWQ3+9uzxYP1vBbrezO7dEItZ3XgLicUsL74//akxJ2nv996LRHxVoegbi7yQovOJBnb9kb5kpah8RpyDklLqI71XCqSUhhDiA8BvAB34rpRS/dZUGDPZImnw/MpUz7fk//bnh+suu0xy6aV+fvQjOHTIxqpVfm67zfpu0NFhR0qTtjYff/6zu08hWOhSkc0aXHxxiN274YUXBOvW+bnqKvjDH6CjwwYYXHttAK+3FbCqp1Qqnjs+23f8Y49JOjoEYLB5cxi3u37qfihloq0NOLYZgPYfAh/byUE6uewVauivkilGJFE2pJQPMLlhQsVUMAMtkorxypuq+x8/DvX1YJpp9uzJsGoV+P1xdD1OPA7r1tHnhWeaCRyOLOvXa0MUgkLEEEL2ddxdtw5isYHnp9NRwEpQqVQUIcgdH+g7/rLLLAsly3svOiMSVCF51d/LSx+igyDBlUElpKhQxrQ6qiSUSKICmAEWSYPXKQ32yiu3q0Lh/V/5SmvfI49YqrorrwwipcHTT1uJ4qqr+hOo1THXQU2Nd9jqT8osiUQQKYd23M1vOxxuHA7LbNU0DRKJECBHPN7y4nOW74cxzeSFFABeD8yZq1R/08FIIgmVoBQTY8cOtq/6QtUq/CbjlVeO+0ci1j6Px7p/NXjjzSTyU6z5ZKWG/qaWyXjxIYTQhRALhBBL8o/Sh6ioKlatqmqLpIl65ZXr/h5Pf3Ka6lgU/T5/czpuItXToIQUFcKYCUoI8UHgLPBb4Ne5x6/KHJei0smZzVarRdJEvPJM08DnO0Y02lvy+0ci/VVUPpZEIkJv7xHSadXqfCoZbJ+kZOnTRzEiiQ8Dr5BSlq/fs6JqqUaLpNHmoGDk6iUS8WMYKQwjRU1NPULY0Qq+4mWzjLqdn9fJ3/+pp6z7A/zud/1DewBPPimJRnt41asMotEeGhqWDHstRXnICym6jL100KmEFNNEMUN8LwOhcgeiqGKqzHB2JK+89euH98oD+M53DL773VDOQdzyuvvmN/tHOHfssBzC8+9nswx4v729v0LLK+caGy1rIpcL/uIv4Jpr+rfr60PYbAZCwK5dSb7xjVjfjzWf4Cr8xzwjWG1bo6qpaWS0lu8fy708DDwmhPg1kMq/L6X8cpljU1QZA9ZMVXg1VaxXHljJJhbzc/iwZOfOGm6+Ocn3vhfm8OFmVq+2YxiWSeu+fVZSuv1263nfPjjvPKuL7eAOu+m01TAwLzUv5Le/lQQCfhYtApvNzYEDcQ4f9qFptVx5pVVtDe7Oqygfg6upDqxOj0pIUX5G8+L71CjnSSnlZ8oT0sgoFV+VkJeiV6kMfTCmadDTc4Qf/1hy+PBSIAiEWLnSy4c+NA9N66+Y9u3rP++886xklTdlLVY1GIsF+c1vutm715nz4juC12sSjS5E12tHPVcxNXQZe2neoMxoS8W4VXxSyjullHcCL+ZfF+zrKmewiion7+NXBcN9xRCL+RFCcuutlk8dNAGCt70tjJQZwEpCg7vU5pMTFK8alFISj/sLvPQ0dL2Jm2+GwmlglZymFzX0NzUUMwc13NfgmfHVWFE+tmxh6xWdlhT97runO5oJk1/Mms3Cj35ktXsRwg54ufdeay4K+iuoQgrnpIpVDSYSIUzT4MknnWhaXe5+9dx7r042mySbjY14rmJqycvSfU9eQMf+oGo/XwZGTFBCiNcKIf4DWCiE+FrB478AY6TzFIo+clL0vmqqCtdMxWJ+slnJvffq7N8fZuXKHu66q4eVK7McPgzf+16YVCozYM7pq1+1nvNzUqZZXIddKSXRqJ/du+G55zQuvriHD3ygB4/Hx+HDNurr4fbbfWN251VMLflqKhxR1VSpGa2COgU8DSRzz/nHL4HXlD80xYwhX03lVX5VRDodR9PA4TBZsSLAW98aIJkM8La3RVixwlLjZbNxXK6Bc063325tu1yg68WpBg0jjZQGDgesWZPgssuse61YEWDFihTnngummeSaa7KjKg4VU89w1VS+vYdi4oxpdSSEsMv8QPs0o0QSM4AdO9jO1opW+BWSyST7FsoOt87JZtNwOj1omlb0OqiRtgESiTDZrDnkvfy1bDYHTmetUu9VMO3t0LpxLwDNGzrxelDt58dgJJHEaDLzvYDMvR7yvpTyolIGqJglrFoFu7qt4b4qSFJ2uwu73VXUsZo2+vbg/42GSzA1Nd6i7qWSU+Vi2VOuAaD9y2s472M7ub9TtfaYCKPJzJfmXr4/9/zD3PPfAHElM1dMhu135xRpqqW8YhaQl6Wramp4JiIzPyalPAZcIaX8f1LKvbnHHag5KMUk6RNPVLHhrEJRLHkhRc/hBu7v7FRGtEVSjMy8VghxZX5DCLERqC1fSIpZQ5VZJCkUk6GtzTKi9T15AQcPomTpRVBMgtoCfEMIcVQIcRS4B7itrFEpZhV91ZRCMQtYbVvDnA5VTRXDmAlKSvm0lPJi4CLgYinlJVLKZ8ofmmJWke8vVWUydIVioqhqamxGU/G9Q0r5owLT2Px+QJnFKkpMWxtb27Bk6HejxBOKWcFq2xroWMPLSx/i/ojy9hvMaBVUfp7JM8JDoSg9M8QiSaEYD4OrqZPGSbXIl+IW6rqklMkpimdUlMx8lrFjB9u7/xrmzKmKNVMKRSl4eelDADhbg7NGlj5umXkBLwghdgkhPieEuF4IUV+G+BSKoRRaJCmFn2KWsPjYZhYf26yEFBQnklgJ3AzsBW4EnhNCPFvuwBQKoL91x65dKkkpZh2Lj23ua+uRH/qbTYyZoIQQi4ArgFcDlwKdwP+UOS6Fop8tW9SiXsWsJW9E23O4gY79wVlVTRUzB5UF/gT8q5Ty/imJagTUHJRCWSQpZjPt7XDex3YCM6vl/GTmoC4FfgC8XQjxhBDiB0IINWM9ixjrS8xUoiySFLOZfDWV6pkd1VQxc1DPAd8Hvgf8HrgK+Kcyx6WoEOLpNAe7u/HHYtMdSj+FFkkKxSykcG5qJjdJLGYOqgN4AngDsA9ok1IuK3NcigqhJxJBAv5YDDPfv7xC6OvUq8QTilnI4CaJM7GaKmYOqlVK2TNF8YyKmoOaWmJ33cXJcLhvu0kIWjQNPB6rb3kl0N7O9l25dSLbtk1vLArFNFHtc1PjbliYp1KSk2Lq6Q2Hwe3Gq2mEs1mCQKPNhh6JTHdo/SiLJIXC+pXvuIkuYy8ddPKSJzgjFvgWI5JQzEKiySQpwCYEczWNWiHIAoEKG+brQ1kkKRR9fafCkZkxN6USlGJYfDlRRKOmIYSgWdcBCGazmBWk6htAW1u/yk/NTSlmKYPnpqrZKX3EBCWEeONoj6kMUjG1RJNJUoaBDWjIude7hOivoio1QeXJL+w9cGC6I1Eopo3BXXyrsZoabQ7qr0Z5TwI/K3EsigohXz0J4LRp9u3PvwpKSWM2i65VcAG+ZQvcnevUq+alFLOUtjbg2Ga6DlXn3NSICUpKeetUBqKoDKSUpA0DgExtLZnC9U+RCEhJVggyn/gEeq66qihVXwFbtzVb4oldWNWUckRXzFKqte/UmDJzACHEDcAFgCu/T0r5mTLGNSxKZj41pDIZ0gWVUx+f/jTU1mIDagqrp2i04oUJyiJJobDoMvbSvKGzouToE7Y6EkJ8C3gb8EGsUZ+3AEsnE4wQ4i1CiE4hRFYIMSQoxfTitNvxuFxDH0Lg0bSByalKGGCRpFDMYlbb1pDqaeClU8GKn5cq5i/NRinlO4GAlPJO4FXA4kne9wXgjYCSWU0D2Wx2XP5643WQqDTHiT7yQ3wVXu0pFOVm8bHNVeGOXkyCSuSe40KIBUAGWD6Zm0opu6SU+ydzDcXESGUyHOrp4UyBQ8RoxFIpDvX04ItGizo+EItxqKeHcCIx9sHTwNZtzdYLJUNXzHKqwc+vmAT1KyFEA/AF4BngKLCznEEVIoTYKoToEEJ09BT5R1IxMr5YDAlEkkmSmcyYx/fkXCP8sRjGGFVXNpvFH48D0BuNVpQLeiFbtzWrRb0KBZXvjl6MF59TSpnKv8YSSiTz+0Y57xFg3jBv/WO+r5QQ4jHg41LKjmKCVSKJyZH6l3/hWCjUt10rBAsLvfXe+14o+H2IAKfzG/X1NIZCtOa3C+ehbDaYPx9/KERvwflzhaC+vr4iFX597NjB9u6/VuIJxaxnOv38JuzFh+VkvhYgl5RSQohn8vtGQkp57UQCVZQPX4G3XiSbJQYkbTZceW89KSEvHQd8uWTTAATdboKRCI26ji2bhYUFv7zRKNlwmEBNjXW8phHMZvEJgTccpv+KFciWLWxtb7ek6Lt2KcNZxaxlsJ9fcGVw2qXoozlJzBNCrANqhBCXCiHW5h5XA+4pi1BRElKZDFEpEUCrptGYq4B8w8nJgYiUpLG+wbQCdUIggcAI1w9KiQnUCMEcXccpBIaUhCt0mG8AOYskhULR70BRCXNTo1VQrwHeDSwCvlywPwxMasxGCPEG4D+w/vb9WgjxrJTyNZO5pmJ08u4QDbnE1CAEASAmJbFsFncuefUdn3tuxlpb0KzrRIEg4Mlm+xfEAVkp++yPmnPXb9I0TpsmPinxSokQFV1HAVZ/qe13A3PmqEW9illNvpp6eelD8Irpi2PECkpK+X0p5Sbg3VLKTQWP10spJ2VzJKX8uZRykZTSKaWcq5JTeUllMkRTKQTWvNNhw6A7m6VR00hmszxjmpwtUPUVVk/e3D6nENTl3nsW8BdUXoXVkzuXoDyaZlVRQDiZnJLPOWkKO/UqlZ9CQfTQwmk1nC1GxbdLCLFDCPEggBDifCGE+npZReSrJw3ozGQ4bZocNAz82SwBKYlLSU8kQl714is49yRwAjhhGKSkJIBVQveYJqaUA6onM3dc/pFfDeWrYEXfcAxY1Ltjx3SHo1BMG6tta5jT0W84O9Uqv2IS1PeA3wALctsvAR8pW0SKkpP31ouHQvjPniXR3U2iu5tjp0+T7O6GaJTMZz+LH8uLz8idZwDx/CMWwy8lhmFYfn1nzhA4cQLzxAnMeBxqa0nHYsQLHplYDGprMbNZslWUoICB+joMbQAAEeFJREFU1ZRKUopZzuJjm/E9eQEHDzKl1VQxKr4WKeX/CiG2AUgpDSHE8DPriopkcVMTKcPgFDDPZsMLRIFThkEj1lqAFJasvAnLxyqzaFH/BWIx5J13cvSTn2ReTQ3Nuk5cyr4Ou8uiUYxR1G82Tats5/NR2HpFp6Xwa29XMnTFrKbQcPZROqfEFb2YvxoxIUQzVosNhBAbgNDopygqCV3T0IQgm+vptEQI6nPvZbBUMPltP2AH3JrW/xACI5vFLgT1us4im21Ah12HELgdjhEfDlsx34MqlLY2tahXoSjgyA83E44wJcN9xSSojwG/BM4RQuwCfoBlHKuoEMxsluwY/nd5q6IGrG8appRoWMkonNsvsKooH2AWiCCklH3n51V6o3XYzYwgXa9aCmXoSjyhmOW0tTFlMvQxE5SU8hngKmAj8B7gAinl82WLSDEuDNPkSG8vx/3+EYUIyUyGWDqNBtRIyYtSckIIGrDmmR4AXsSqok4A/wU8nk73nR+WEiObxYGlzoORO+z6YzGO9PYSqlAvvsmgLJIUCoupskgqxurIBbwPuBLry/fjwLeklFOuHVZWR4P413+lOxQimPs3nKdpeIXoty764AfBMDgpJTFAy6nwjgFJYC5wEGs+qgW4DHgUq4pqweqr0ggcwUpkNqyKC/7/9u4/yKryvuP4+3N3l8ryQ1iQ+AMTaVT8hSUjo0lttzaxHWo1mXS01mk6kpBh7NRpO2pjiTPGaf7QxNGZtCaxpDqkxomaH43GNCqmGiKIERVRioqKBIydgAjyIwq7++0fz3OXC+7dXZZdz7l7P6+ZO3vuveee872HH999nvM83weoVOgidRFWgBnTp8OOHazv6aEn7zujUkETJ5a71NFQuUSSGZA6FM780l2cePTQyyMNeT0oUpfeqaSJtbcApwB3DCkKG1Zdb7/N9rFjob0d2tt5c+xYYty4tPItQFcXtLbS1doKra38lnSPaRdpUMQr+fke0ki9x0jJCdKQ8VXk7sDq+Uil7auPaqnZHqB7xw7eam+nJ8fS1d7OttpYRpv581Nrat26oiMxK1RnJ71Ldwx3d99g7l7PjIjfq3n+iKRnhzUKG5KtEQSpDNEeYE8EOyJ6J9dWTSclodeBo4ATSfeZngOOA44HNpMS1AeA2aRW1vq8PYN9yajX0Uf3brbu2kWFdD8KUhWJrT09vNXTw6QDKlSMOtVJva7hZ03s2A1zWftKquH30oRtwzbCbzAtqGfyyD0AJJ0FeFnSgnV1d7O9Wl6opYWOam29PhYjbJEQqaXTDnyQVCGi2hV3Rv75Lqkl1UlKXJBaUa3A2AMfeWXdsZUKbRJvRaTjS0xtaeGwXItvW6PNfzoYefDEgmk/SknK86WsiVVr+A2nwSSos4Dlkl6T9BqpuvkfSXpOkgdLFGRrXtepWlJoYqXCGIm9EfTVqVatDjEJaAG2kP7wp5CS0tb8vIPUBfiRvN/6/F5/umsSUe8ov/zzrYiGqiIxJC6RZAbs6+4brqoTg+nim3vIZ7Fh1dXd3TtKrqNmAmxHpcL/dXfzZk8PE2q61t6pDpIgDXrYQrrXNImUkO4nrft0JGmS7suktVSOI92nWgV8vJ94altPY3M84yoVDuvp4R1g2+7dTB43bji+eqktWDglDZ6o9i948IQ1oWp3H6zhNxMObULvgAkqIjYM+eg2It7avZsANG7c/ku379gBEeyV2LFwIRN7emDPntR6ytXENwHPkOY+tQDLgSfz9rT8HGANMCZvryfNzK5O5gUgz4vqiWBbe1p9Zc+uXdT+ZekGGDeOrbt3M6m9vSEqmh+y+fNZcNttLFo3zQnKmtbJrbNYevMsTrriLl7ven3Io/saeIp/8+rKgxHissvYb1njm25KI/qArupKuUDX9u1w5ZX0kO4z7Vq/nr1dXey84w62VyrsznOc3gTG50Ntyd2GAHR3s/OGGzh88uT3xNLd3U3Pli3pPPlxoJ5ci6+lGRIUpKU6rs/dfR6Gbk2qsxM2bp7ESrYNefFDJ6gGdOTEiXS0t/OeOzuVCrS2ItLyGFXHVirs6ejofX70xIns3LOHTaSENZfU7RekisDjoXfZDEiDIvpKTgBtLS387tSpvUmzL41ci2+oFiycAl6p15rcsRvmsvQO4Iq74Pg1B52knKAakCR+p62trzf2W7K9qiJxWO3+bW0oT+ptaWlhRksLW4Gte/cyDjgGIJcyAtJS8P1obWmhtXZ/Szo7WdAJi65/060pa1qdnbB2xanAGibNPLjuvub6tdZ6VdeI6iAlsMmkWny7SFUmbPjsVyLJrAmd3DqLN1ecyku/3nZQn3OCakK73n2Xd/bupYV9Ax9acpKC/RcstGFSbTm5hp81qc3LZ7H51UkHtZ6Uu/hGkwkT+i4tlAdLVG3NradobeVXXfuGNVQ78naRlonvvY/VyMtllEjvMPTrgWnT0mAKsybR2QlsmMtGHuDeHWs4/ngGvCc1YLHYMnGx2OHx2pYt7BlgSYzpkyfTPmZMv/vYEC1dyqJl+R+mB09YE1rb9Rwz/mTfHKl6xWL9q3ET+mBHR7+j7iqSBz2MpDx4wq0pa1abl89iykfXcO+aNcyZOanufr4H1YQqlQpjWlvrPpyc3ifViuhmTaZ2Pan+OEGZFamz0zX8rGntfOUYVr5Yf2SfE5RZwfYbhu6K6NZETm6dxbSV9SugO0GZlUFeusOtKbN9PEjCrET2K5EErjxhTc0tKLOy6exMiyC68oQ1OScoszKaP98r9VrTc4IyK6vqMPTqfSmzJuN7UGZl5km91sTcgjJrBLWtKY/wsybhBGXWKGoHTzhJWRNwgjJrJNXBE57Ua03ACcqs0cyf70m91hScoMwalEsk2WjnBGXWyDo79w2eMBtlnKDMGl118IS7+2yUcYIyGw2qw9CXLfOkXhs1CpmoK+lG4AJgD/AK8NmIqL8oiJkNzJN6bZQpqgW1BDgtIk4HXgIWFhSH2ehTO6nXgyesgRWSoCLioYjoyk9XANOLiMNs1KodPOH7UtagynAP6nPAT+u9KWmBpJWSVm7eufN9DMuswdVWnnBLyhrQiCUoSQ9Ler6Px6dq9rkG6ALurHeciFgUEXMiYs4R48ePVLhmo5Mn9VoDG7FBEhFxbn/vS7oUOB/4RETESMVhZnml3ttuSyv1rlvnwRPWEArp4pM0F7ga+GRE7C4iBrOmU9uackvKGkBR96BuASYASyStknRrQXGYNR1XRLdGUcg8qIg4vojzmhmpJbV0aeruW7YMFnqWh5VTGUbxmdn7rbMzFZt1iSQrMScos2ZWWyLJQ9GtZJygzJpdbk25IrqVjROUmQHs6+5zS8pKwgnKzBJP6rWScYIys/30Dp5YtqzoUKzJOUGZ2XtVK024u88K5ARlZn1yd58VzQnKzOpasHCKV+q1wjhBmVn/qsPQwa0pe185QZnZoPS2ptatKzoUaxJOUGZ2cKr3pcxGWCHFYs2sQXV2sqCTtLbU9cC0aV5bykaMW1BmdvCqNfzcmrIR5ARlZkNTO3jCbASokVZbl7QZ2FB0HAOYCmwpOoiS8rWpz9emPl+b+kbLtflQRBxx4IsNlaAagaSVETGn6DjKyNemPl+b+nxt6hvt18ZdfGZmVkpOUGZmVkpOUMNvUdEBlJivTX2+NvX52tQ3qq+N70GZmVkpuQVlZmal5ARlZmal5AQ1zCTdKOkFSasl/ZekSUXHVBaSLpK0RlKPpFE7NPZgSJor6UVJL0v656LjKRNJt0v6jaTni46lTCQdK+kRSWvzv6d/KDqmkeIENfyWAKdFxOnAS8DCguMpk+eBvwC8XgMgqQX4OvBnwCnAJZJOKTaqUlkMzC06iBLqAq6MiJOBjwJ/N1r/3jhBDbOIeCgiuvLTFcD0IuMpk4hYGxEvFh1HiZwJvBwRr0bEHuAu4FMFx1QaEbEU2Fp0HGUTEW9ExNN5ewewFjim2KhGhhPUyPoc8NOig7DSOgbYWPN8E6P0PxobGZKOAz4CPFFsJCPDy20MgaSHgSP7eOuaiLg373MNqSl+5/sZW9EGc22sl/p4zfM+bFAkjQd+APxjRLxddDwjwQlqCCLi3P7el3QpcD7wiWiyiWYDXRvbzybg2Jrn04FfFxSLNRBJbaTkdGdE/LDoeEaKu/iGmaS5wNXAJyNid9HxWKk9CZwgaYakMcBfAfcVHJOVnCQBtwFrI+LmouMZSU5Qw+8WYAKwRNIqSbcWHVBZSPq0pE3Ax4CfSHqw6JiKlAfTXA48SLrRfU9ErCk2qvKQ9F3gcWCmpE2SvHRvcjbwN8DH8/8xqySdV3RQI8GljszMrJTcgjIzs1JygjIzs1JygjIzs1JygjIzs1JygjIzs1JygrKGJWmepKMHsd9iSRcO9vVhiOuLNdvHDaYad45lvaTL+tln9nAOJ87X75ZDPMaj1cr0kv77UKv3SzpH0v15++Jc5f3+QzmmNS4nKGtk84ABE1QBvjjwLn36p4job97cbKCw+S6S+q08ExHnRcS24TpfRNwNfH64jmeNxwnKSiG3NF6Q9O28ltb3JbXn986Q9HNJT0l6UNJRueUzB7gzT1QcK+laSU9Kel7SojzjfrDnf8858uuPSvqKpF9KeknSH+bX2yXdk2O9W9ITkuZIugEYm2Oq1mFskfStvHbPQ5LGDiKei/L3eFbS0lxp4l+Ai/OxL5Z0pqTlkp7JP2fmz86T9ENJD0haJ+mrNcf9bP4ePydN+Ky+fkH+Ds9IeljSB/Lr1+Vr+RDwn/k631X93sDYmmO8JmmqpMtqJpCul/RIfv9PJT0u6WlJ31OqJVddE+sFSY+RlmMxSyLCDz8KfwDHkQqlnp2f3w5cBbQBy4Ej8usXA7fn7UeBOTXH6KjZvgO4IG8vBi7s45yLgQsHcY6b8vZ5wMN5+yrg3/P2aaTCwHPy850HfK8uYHZ+fg/wmXqx1Dx/Djgmb0/KP+cBt9TsMxFozdvnAj+o2e9V4HDgMGADqebfUcCvgCOAMcCy6vGAyeybuP/5mu98HfAUMDY/v6Lm2px+wPd+DZhaE18b8AvgAmAqaR2wcfm9q4Frc3wbgRNIxXPvAe6vOcY5tc/9aK6Hi8VamWyMiGV5+zvA3wMPkBLAktwgagHeqPP5P5b0BaAd6ADWAD8exHlnDnCOajHOp0gJB+APgK8BRMTzklb3c/z1EbGqj2P0ZxmwWNI9Nec/0OHAtyWdQErubTXv/SwitgNI+l/gQ6Qk8WhEbM6v3w2cmPefDtydW45jgPU1x7ovIn6btzuBfwWIiNUDfO+vAf8TET+WdD5pUcZl+RqPIZUxOol0fdblmL4DLOjnmNZEnKCsTA6suxWk36rXRMTH+vugpMOAb5B+m98o6TrSb+eDMdA53s0/u9n3b2bQ3Yc1n68eY8Auvoi4TNJZwJ8DqyTN7mO3LwOPRMSnldYFerSfc1bjrlfb7N+AmyPiPknnkFpOVbsODG+g+CXNIyXFy6svAUsi4pID9ps9mONZc/I9KCuTD0qqJolLgMeAF4Ejqq9LapN0at5nB6kwL+xLRlvyvY2DGZ3X3znqeQz4y7z/KcCsmvf2Ki2HMGSSPhwRT0TEtcAWUhdd7feF1IJ6PW/PG8RhnwDOkTQlx3dRnWNd2s8xlgJ/nWM8jdTNd2DsZ5C6QD8TET355RXA2ZKOz/u0SzoReAGYIenDeb9LDjyeNS8nKCuTtcCluduoA/hmpKXQLwS+IulZYBXw+3n/xcCtklaRWgzfIt27+RFpKYtBGeAc9XyDlNRWk+6nrAa25/cWAatrBkkMxY2SnlMaor4UeBZ4BDilOkgC+CpwvaRlpG7JfkXEG6SW0ePAw8DTNW9fB3xP0i9ICbGebwLj8/f+AvDLPva5nPTn90iO9T9yt+I84Lv5syuAkyLiHVKX3k/yIIkNA30Pax6uZm6lkLuo7o+I0woOZVAktQBtEfFO/u3/Z8CJOdkN5XiLSd//+8MYZsPL3Y1XRcT5Rcdi7z/fgzIbmnZSC6GNdH/lb4eanLLtwJclTY3+50I1jdxK/BJpYIk1IbegzMyslHwPyszMSskJyszMSskJyszMSskJyszMSskJyszMSun/AUlQ1d9gXDtSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "\n",
    "svm = SVC(kernel='rbf', random_state=0, gamma=0.2, C=1.0)\n",
    "svm.fit(X_train_std, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined_std, y_combined,\n",
    "                      classifier=svm, test_idx=range(105, 150))\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 过拟合情况下的超平面划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = SVC(kernel='rbf', random_state=0, gamma=100.0, C=1.0)\n",
    "svm.fit(X_train_std, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined_std, y_combined, \n",
    "                      classifier=svm, test_idx=range(105, 150))\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/support_vector_machine_rbf_iris_2.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 构造决策树"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "\n",
    "tree = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)\n",
    "tree.fit(X_train, y_train)\n",
    "\n",
    "X_combined = np.vstack((X_train, X_test))\n",
    "y_combined = np.hstack((y_train, y_test))\n",
    "plot_decision_regions(X_combined, y_combined, \n",
    "                      classifier=tree, test_idx=range(105, 150))\n",
    "\n",
    "plt.xlabel('petal length [cm]')\n",
    "plt.ylabel('petal width [cm]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/decision_tree_decision.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.tree import export_graphviz\n",
    "\n",
    "export_graphviz(tree, \n",
    "                out_file='../../tree.dot', \n",
    "                feature_names=['petal length', 'petal width'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 树模型集成与随机森林"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzde5xdZXno8d+z1r7N/ZIEMuRCCMhFEBDCXUEwgKDFg9Yi9Yg9WlHU1tZjC2qPF6xiT3tsrSiaU6i3HrC1YKlFBATkDgkRCRDCJQkh17nu2ffLWus5f6w9k5nJzGTPdc8kz5fP/uy9137XWu9MyH7yrvdZzyuqijHGGDPXOLXugDHGGDMaC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmpEitOzDdFjY26ooFC2rdDTMBuxJCa2NDrbthjKmRF9a/0K2qi0ZuP+AC1IoFC1j3hS/UuhtmAv76GOHdZ55Z624YY2rkxMSJr4223S7xGWOMmZMsQBljjJmTLEAZY4yZkw64OajRlCMRtq9cSaG+vtZdmbMSuRxLN28m6nm17ooxxgAHSYDavnIlTcuWsaKpCRGpdXfmHFWlJ51mO3DESy/VujvGGAMcJJf4CvX1LLDgNCYRYUFTk40wjTFzykERoAALTvthvx9jzFxz0AQoY4wx84sFqFl09/33c8xZZ3HU6afzjX/8x1p3xxhj5jQLULPE930+ee21/PLWW3nhkUe49fbbeWHTplp3yxhj5qyDIotvQi66CLq7992+cCHcc8+kD/vU+vUcdcQRrFyxAoD3X345/3H33bzxmGMmfUxjjDmQWYAaqbsbRis2O1rQmoAdu3ezbMmSwfdLOzp4cv36KR3TGGMOZHaJb5ao6j7bLHPOGGPGZgFqlizt6OD1HTsG32/ftYvDFi+uYY+MMWZuswA1S05785t5efNmtrz2GqVSidvuuIPLLr641t0yxpg5y+agZkkkEuHGb3yDi6+4At/3+fAf/iHHH3tsrbtljDFzlgWokRYuHDuLb4ouXb2aS1evnvJxjDHmYGABaqQppJIbY4yZPjYHZYwxZk6yAGWMMWZOsgBljDFmTqpZgBKRhIg8JSK/E5HnReQro7SJi8hPReQVEXlSRFbMfk+NMcbUQi1HUEXgAlU9CTgZeIeInDmizUeAPlU9Cvh74G9muY/GGGNqpGYBSkOZytto5TGyHtC7gR9WXv8MeLvM4/pAH/70pznkjW/khHPPrXVXjDFmzqvpHJSIuCLyDNAJ3KuqT45osgR4HUBVPaAf2KeSq4hcLSLrRGRdVyYz8uMJG1k2b5QyepPyR+9/P3ffdtv0HMwYYw5wNQ1Qquqr6snAUuB0ETlhRJPRRkv7hAtVXaOqq1R11aLGxin1ac2PEnzzprrBoKQK37ypjjU/SkzpuADnnnUW7a2tUz6OMcYcDOZEFp+qJoEHgXeM+Gg7sAxARCJAC9A7c/2AdEa49Y74YJD65k113HpHnHRGpm0kZYwxZv9qVklCRBYBZVVNikgdsJp9kyDuBD4EPA78PnC/jrZuxbT1CT5zTR6AW++Ic+sdcQCuvLzIZ67JM39nv4wxZv6p5QiqA3hARJ4F1hLOQf1CRK4XkcsqbW4GFojIK8BngOtmulNDg9QAC07GGDP7ajaCUtVngTePsv2LQ14XgPfNbr/Cy3pDffOmOgtSxhgzy+bEHNRcMXTO6crLi6y9J8mVlxeHzUlNxZUf+xhnXXopm155haUnncTN//Iv09NxY4w5AFk18yFEoKlRh805DVzua2rUKY+gbv3+96ehl8YYc3CwADXC1VcVUGUwGA0EKbu8Z4wxs8su8Y1iZDCy4GSMMbPPApQxxpg5yQKUMcaYOckClDHGmDnJApQxxpg5yQLULHl9xw7Ov/xyjjvnHI5/61v51po1te6SMcbMaZZmPksikQj/5ytf4ZQTTySdyXDq6tVceN55vPGYY2rdNWOMmZMsQI1iq+zkadlISjI0ayOn6nGs0MOmdMyOQw+l49BDAWhqbOS4o49mx65dFqCMMWYMdolvhK2ykwectWQlT5wYWcnzgLOWrbJz+s6xbRu/3bCBM049ddqOaYwxBxoLUCM8LRtxcYkSQRCiRHBxeVo2TsvxM5kM7/3wh/mHr36V5qamaTmmMcYciCxAjZCSDBHcYdsiuKRk6kvJl8tl3vvhD/OB976X97zrXVM+njHGHMgsQI3QrI14+MO2efg069SWkldVPvJnf8ZxRx/NZ665ZkrHMsaYg4EFqBFO1ePw8SnjoShlPHx8TtXjpnTcR598kh//279x/8MPc/L553Py+edz1333TVOvjTHmwGNZfCOs0MM4Pzht2rP43nLmmWhn5zT10hgzWzzPI9WXormtmUjEvjJnk/22R7FCD5tyQDLGHBh69vSQz+XxPZ9FHYtq3Z2DSs0ClIgsA34ELAYCYI2qfmtEm7cB/wFsqWy6XVWvn81+GmMODN1eN9u8bRS0QEISLI8sZ2Fk4bj77Mzs5Jm+ZyhqkXgxzsnNJxOLxyZ8HDM5tRxBecD/VNX1ItIEPC0i96rqCyPaPayqlvJmjJm0bq+bl8ov4eAQIUJJS7xUfglgzODS7XXz2z2/xVOPqBul7Jf57Z7f0ry4mahEqz6OmbyaJUmo6i5VXV95nQY2Aktq1R9jzIFrm7cNBwdXXEQEV1wcHLZ528bc55XMK3g5D9d1aV/Sjuu4ZDNZCsXChI5jJm9OZPGJyArgzcCTo3x8loj8TkR+KSLHj7H/1SKyTkTWdWWmfr+SMWZ2lMtlgiCY8fMUtIAz4uvOwaGghTH36enpQRDqW+qJxqPUNdcREJDty07oOGbyah6gRKQR+Hfgz1Q1NeLj9cDhqnoS8G3g56MdQ1XXqOoqVV21qHFq9ysZY2ZHsVBkx9YddO6Y+ezWhCQIGB4IAwISkhizb5IXcKChtQGAhrYGHHEoZUqUi+WqjmOmpqYBSkSihMHpX1T19pGfq2pKVTOV13cBURGZlQu92WyWrdu2UShM/V9Gyf5+vnvLLZPe/x++/31yudyU+/Hgo4/y2FNPTfk4xkyHzXs280LxBR5PPs7jPY/T7XVP37GLm3ko9xD35+7nodxDxDRGQICvPqqKrz4BAcsjy0fdP9mTpMPtIFIXoVQqUcqXKJfL1NfV4+CQ6k1VdRwzNTULUCIiwM3ARlX95hhtFlfaISKnE/a3Z6b7pqp0dndTKpfp7J76X5pkfz/f/cEPJr3/P6xZQy6fn3I/Hnz0UR5bu3bKxzFmqnakd/Bi6kXKWsbFpbenl5fKL01LkNpc3MxWfys+PoLg49OpnTTTTExieHjEJMbR0aNHTWwol8vkc3naIm10FDtI70jTub2T9I40S8pLODJ6JEE2oOgVxz2OmbpaZvGdA3wQ2CAiz1S2fR5YDqCq3wN+H7hGRDwgD7xfVXWmO5ZKpyl7HgCFYpFsNktDQ8Okj3fdX/81r27dysnnn8+F553H3375y/ztjTfyr3feSbFY5PJLL+Ur115LNpvlDz76Ubbv3IkfBPyvz3yGPV1d7Ny9m/Pf8x4WtrfzwB13DD/2V7/Knb/6FRHX5aK3vY2/+8pX6Oru5uN/8Rds27EDgH/46ldZ0tHB9374Q1zX5Sc/+xnfvuEG3nrmmZP/JRkzBRs7N+Lg0NTWRD6dJygFlLNltjVum/KX/XZ/O1L5b6he7eXcunP3u38kEqGhsQGv7LE4vpjFLN6nzdLoUhY2LqTy72czQ2oWoFT1EWDcP11VvRG4cXZ6NHhOevv6AKhLJMgXCvT09U0pQH3jr/6K5158kWceeACAex54gJe3bOGpX/0KVeWyD36Qhx5/nK7ubg5bvJj/+n//D4D+VIqW5ma++b3v8cDtt7NwwYJhx+3t6+OOu+7ixcceQ0RI9vcD8Om/+iv+/GMf4y1nnsm27du5+Ior2Pjoo3z8Qx+isaGBz37yk5P+WYyZqkK+QDqXJuJEaGhrQFwh05Mh15sj2hCd8vE9vH2C08D2aoiI3ZA7R1gliREGRk+xaJQlHR1see21aRlFDXXPgw9yz4MP8uYLLgAgk83y8ubNvPXMM/nsV77Ctddfz7suumi/I5zmpiYS8Th//Od/zjtXr+ZdF10EwH0PPcQLmzYN+5nSlt1o5ohkT5K4xHEbXZK7k0TrojiuQ6lYQnICdVM7foQI/oiCzwPbzfxif2JDDB09LWhvx3Ec2tva6OrpmfIoauR5Pvenf8rHPvShfT57+t57ueu++/jcX/81F73tbXzxs58d8ziRSISnfvUrfv3ww9x2xx3ceMst3H/77QRBwON33UVd3RT/phszzQr5AoV8gSXRJexiF8VckVK+RLw5Tqm/RHOqGRbs/zjjWeouZau/ddg2RVnqLp3agc2sswA1xNDRU1MlXb2luZnevr4pjaKaGhuHjWAuPv98/tff/A0feO97aWxsZMeuXUQjETzfp721lf/+vvfR2NDAD267bdj+Iy/xZTIZcvk8l65ezZmnnspRZ5wBwEVvexs33nwzf/GpTwHwzIYNnPymN9HU2EgqnZ7U78aY6dDfG16GbqKJLS9toSvowsenPllPR0sHr2Vfo6uni+aG5sHMuJFlhUbbNnTeamV8JRTDuSgPjwgRlrpLaXabWV9YP26JomrKIU2mZNJMm4t9mg4WoCqGjp5c16W7Z2+yYCQSwS+VJj2KWtDezjmnn84J557LJRdcwN9++ctsfPllznrnOwForK/nJ9/9Lq9s2cJffOUrOI5DNBrlpv/9vwG4+oMf5JIrr6Tj0EOHJUmks1nefdVVFAoFFPj768Myhf/4ta/xyeuu48TzzsPzfc4980y+93d/x+9dfDG//+EP8x93321JEqYmNAhznLb3bKer2EUsFsMv+RSTRbrqu4hH4jT6jZS0xIulF1F0WFmh0baNVmpoZXwlK1k5+L6aUkfT1Wa2zcU+TReZhaS4WbXq8MN13Re+MGzbxpNP5rgjjhh3v2KxyGvbt+/3+EeuWIHruvttNx9t3LKF4555Zv8Np9lfHyO824LlQUFVKRaK3LvpXkpBiUVLF5Hrz9GX6iPeHKf10FaaYk0AZIOwYkODs/cfhaNt89UnJjFOSZwy5nnXF9ZT0hKuuGPuN11tZttc7NNEnZg48WlVXTVyu42gKuLxOIsPOQTPGzvTJxqNHrDByZjZICLks3k816OxqZG65jqiiSj9+X7KhfKwag8BwT7ZeKNtG6vUUC6bQ0Soq6+joIV9kiRG7jddbWbbXOzTdLEANURzU1Otu2DMAc33fVLJFHGJU99eD0AkFqGusY58Jk++N0/L4haAfWrnjbVttFJDpWKJzp2diAhLViwhIYlwlIE75n7T1Wa2zcU+TZeDJkCpqt1UN44D7VKvmZtSfWGJoCWxJXTmOynlSwhC1ImSI0c5XcZb4CERIUIEJSwn5OAQEIy6bbRSQ5s7N7O5uJmiFtmyawvLD1nObt0NyuB+ZS0jCI/lHyMhCVqldZ82I4+9PLI8nN8Zp810218CRC36NFsOigCVyOXoSadZ0NRkQWoUqkpPOk1iGur9GTOeXCb8f6xFWgj6A3b5u8LFACXOEncJaU2TzWZpb23nqOhRwPCMvdG2jfzC3pndycbkRhxxcHHp7+9nR+sOlsSWkNRkWNlcHQRB0cHEgt26m8XO4sE2ox174PVsZcxVkwAx232aTQdFgFq6eTPbga76+lp3Zc5K5HIs3by51t0wB7j2Q9op5MK5kRZaWMGKYZ87jkNjS+Owud7RvmjH+/IdLKPU2oTv+RQyBfJ9eZKHJIclO6AMJha4uKCQ1OR+EwsWRhbO2pf/0HWsYG8/t3nb9gmcB0JAGumgCFBRz+OIl16qdTeMOejV1ddRVz8zN5AHQYBX9khlUkQkQn1rPYEfUMgUKKaKZNuyUJmWmS+JBfOlnzPloAhQxpgDW09nD5lUBsdxiEucaEsUN+LiRlwSjQly6Rx+0odKHtR8SSyYL/2cKTVfsNAYY6aiXCqT7k9TKpbYvWM3h0UOI9YUo1Qu4ZU9Yk3hWlCt2dbB20iWR5ZPaH2oWpkv/ZwpNoIyxswrI7PatFPZU9xDd1c3mlOOaTgGZ4fDTn8nPj4uLovdxagqj+55lGh7lIQkRk2IAPZbDmk2f7blkeUcHT36gEyAqIYFKGPMvDEyqy1VSLE7uZu4xGld2ErPjh42JTfRvLiZRDQxmHbdrd30aA+t0dZhWXtDFxusdcmgsc5/dPToeVMRYrpZgDLGzBsjs9rSfWkEIdIU4ZBDDsGNuGTLWRoOaaCtsW1wv5ElkkbLhqs2Y262frbZPv9cZHNQxphpVy6V6dzZSalYmtbjFrQwWE3CK3nk0jkQqGurw3GcMHOPgEzv8PXPFB1WRglGL2M0slLFbGbM1fr8c5EFKGPMtOvp7CGXzdHb2Tutx01IYjDQZPuyODgkmhJEo+FKvPUt9biui1fwKOaKg/sJss+X/2hljEYGsdnMmKv1+eeiml3iE5FlwI+AxUAArFHVb41oI8C3gEuBHPBHqrp+tvtqjKleIV9gV3pXWCWiUGRxw2IObTh01ISEoZP/rdI6bhUH2FvWxyt55FI5HBzKxTLpHWnykh+sDOHjk+pJsbBuIQEBLi6CjFsiaaZLBk22ZFGrtNY0caOWajkH5QH/U1XXi0gT8LSI3KuqLwxpcwnwhsrjDOCmyrMxZo7a0rmFrd7WsPp/2aW7u5t8Ik+MGDGJjbquUz7IkyQ5rM1oCQoDr1/OvYyPT51TR5PXRFrT5DVPXOKscFeAA3u8PXh4VZdImsmSQZMtWdQqrewOdh+Qaz1VY8wAJSLvqWL/gqreNZkTq+ouYFfldVpENgJLgKEB6t3AjzSsZPqEiLSKSEdlX2PMHFPIF9iS3oLruCxcupCe13vIFXLEcjHcehcRwcUdnFcZuHzlqReOcPAH24yVILAwspCFCxZSbCgSBME+fRjwptibiESGf8Xt70t9pkoGTbZk0frC+oM6cWK8EdT/Bf4DGK+66rnApALUUCKyAngz8OSIj5YArw95v72ybViAEpGrgasBlre3T7U7xphJSvYkKWqRlrYW3IhLfWs9ma4M2d4ssfrYYLuR6zoNzL0MnYPZX4JAPBGfgZ9gZky2ZJGVOhrbL1X1w+PtLCI/mWoHRKQR+Hfgz1Q1NfLjUXbZZ10IVV0DrIFwRd2p9skYM3GFfIFCvkDCTZBoDUdG9S31uL0u5UIZL+dBY9h2tGy1gGDY9gMpQWCyJYsO9lJHYwYoVf3v+9u5mjbjEZEoYXD6F1W9fZQm24FlQ94vBXZO5ZzGmJmR7EkCsKJhBbuyuyhRwsGhLl5HOpcm1ZvCrXdxKv/5+KSD9LBjuLio6pxOENhfssNoJpuAcSCv9VSN/SZJiIgLvBNYMbS9qn5zKieuZOjdDGwc51h3Ap8SkdsIkyP6bf7JmLnH8zwK+fCyU12pjrZc2+BaT4MBqeATlAOcqIOHN/axKokNczFBYLLVJiabgHEgr/VUjWqy+P4TKAAbgLFnJCfuHOCDwAYReaay7fPAcgBV/R7h/NalwCuEaeb/YxrPb4yZJpFIhJa2FrxyGHgaaGApSwHYUNxAXOPEYjGa4mE58YGR09BLegM3076l7i3A3EwQmEq1h8kmYByoaz1Vo5oAtVRVT5zuE6vqI4yfgEEle++T031uY8z0a1vYNur2RD5BI41VrWY9dGQ1FxME5mKfDmTVVJL4pYhcNOM9McbMS77vs2PrDrp2dQ1uy2VzbHt1G7lMbtQKCWMZ+uU/kcoK/b39bN+8fdpLK400kT6lkilef/V1ioXiPp+Z6lQToJ4A7hCRvIikRCQtIiOz7YwxB6lUX5pyuUw2kyWfyxMESm9nL0EQ0NvVyzJ32T5rGg1c2tMR/y11lw4et9q1kDzPI9mbxPO9wUSNmVJtn4IgINmTxA98+rr6ZrRPB7JqLvH9H+AsYEPlkpsxxgDwr2ua6W9cT+sJr4aVHbbXkX35TZSyPTQcuxUfn7aeNpa0LKEkpcGJ/qOiR7G7vJsu7UJRBOEQOYSV8ZWDx642QeDZ3c/yai48v5t3ObHxRBbUL9jvftVk4012faYtXVvYlN9EUYvEi3FObDmRpc1LMRNTTYB6GXjOgpMxZihVKC1+moZlL0M0ihtAJpNHD3mCeNQhUh8nyAWk+9LsadrDEZEjWJkIA1C3102KFHVSN5g+nSJFt9c9bmWFkV7OvszLfS8DEK+PU8qVeKHrBdo72olLfMxMu2qy8Sa7PlNnqZMN3RsQFerr6ynkCjyz5xkS9YmDNtlhsqq5xLcLeFBEPicinxl4zHTHjDFzWxD41K18FoC65mYiiUYKKY9sX4ZI3KW1o5VILEJQDiimi2z3tw/uOzQbTkRwJbw/apu3bUJ9eKk7vEco0ZCg5dAWRIRitkixWBz32NWcf7J9fLH7RSQQEvWJ8HcQieAXfF5OvTyhn81UF6C2AL8GYkDTkIcx5iCWTqYpB2XqGmNE62LEmxMUMgW8YploIoqI0NAWLhCY68tR1vLgvtOx9pHneWRS4bpP9e31OK5DXUsdANne7LjHrub8k+ljEAT09vUiCI3tjYNrVAlCT09P1T+bCe33Ep+qfmU2OmKMmT983yeVTOHiEm+uB6CcKxGri+GVPLxSmC6eaEqQ7cuG29IehPFqWkr49Pf246hDtCFKNB6uB9XQ1kCuP0cxW6RcLA9uH23tp/2dfzJ9TPWliGkMqRNidWHtwfqWetJ9aZyiQz6Xp66+ruqf8WBXTSWJe4H3qWqy8r4NuE1VL57pzhljZs9ESvj88rm17N6eoXvnYo4+vxfVPKldSTQoA0Jye5LA0zBg+YofKF2by/y8+zlA2LJuKSdcspmm5rHXZxrPwOhpsbuYrqCL/s7+wc/EFRzPIdWTor2jfdJrP020zFAQBKSSKTrcDnboDvr29CEIioILHdJBf0+/BagJqCZJYtFAcAJQ1T4ROWQG+2SMmWUTLeFTLpbY8oN3ArAl9Ts6ztlALpkDL8KetW/AceHw83cSLAjwilF+9+8nw6aTuOyyI7j55ihdpV4Oa2xjwbs2TKqET6lQQlVZFlsGJdid3x1m8eHS4XbQGG1kT3HvelCTWftpomWGSsUSQRDQFmkDD3YVw1JPcYmzzF1GW6SNYrGIqlZ107KpLkD5IrJcVbcBiMjhjFJR3Bgzf020hE/TghYSiUM55xxQvQh55iLaSzl8v8zhi0BEiG8K52BUYdNr8PTzETZujJLJwFs/+hp/8N4oImNnw42nrqGORYsXEQQBC1gwaps3xt847pIc1ZQQmkiZoURdgkM6DsH3fRawgKM4ap820VjUgtMEVBOgvgA8IiK/qbw/l8raS8aYA8NES/i40QixWAt1Q65W1dW1jHn8Sy6B3/527/vzP7wJkeMpl8q4ERfHqSZfay8RoaGpYUL7zIb6xvpad+GAst//K1T1buAU4KfAvwKnquqvZrpjxpjZk5AEgY4o4aP7JgSMvBuymrsjVeG++4Zve+CWY8jniux4bQedOzqrPpY5uIy35PtiVd0NoKrdwC/Ga2PMpPk+zxefr3UvDmrP3NPB4tO20NCyt25ctj/K7rUdxC8O/2x+/c9Hks9EeOenNpFK7w088Tice+7oxx1o89RTcPrpsHo1rFkDD/34aPY8tY3P/QMUCgWymRw/+6flNDT6/P4fz05poMms62Rm13iX+O4iHDmNp5o2xozrxT84nJ7rrQxMrajC+l8vpHT74bz9T9bTtixF3+vN/PrbpxArNqOd3QBs+s1CNj3dwranF3PK27splfYGHlUYbWpFJAxgA8FJBI45BvKNu3h1o8/Pf9TGf/tQH7f8ncOj97RwyR/0j3ms6TTZdZ3M7BovQJ20n6KwAljRWDNl5zY9A5FLat2Ng9pxF8N993XwkyuPGdx2+umw+mIQ6djbxoWnnqrntac79rZZPX5AOffc4QHMceAPrv8V2/7zJB69ZxkP392Kqs8737+Lqz6dm/HgBFNb18nMnjHnoFTVVdXmcR5NqrpkNjtrjJkZImGgGWpk4KmmzXjHH+B5ebxiiff8j37cSDuuG64jdekVr85KcILpqWRhZt7EUmeMMfNCKtVJMrmTams8D8wVZTK3kc3+DAjfl8slenpeo1DIDLYJgj4873VUfe67b+LJDaVSD6pw108PR8TFcVsQcfnpmnqymdxEf9RJmci6TqZ2qkkzN8bMI8Vinnw+vLe+UEiRSLSMOzIZCDz337+ejo5XOfJIyOWe59FHjyeX6+KMM4qkUp0880wDTzzhc8IJ3Zx9trJuXS9PPrkI2HckFQThpbwBz5c24DjglQo0nbCbJ29fyc61h3PpFf1c9elu1twQ4e6fNRGJlvjUl2Z+DmqiVSJMbdQ0QInILcC7gE5VPWGUz98G/AdhwVqA21X1+tnroTHzy0MPQV9fD2ecEX7JZzK9PPxwM4mEjJlpJwJ33gml0uOcfXb4fsGCR9m9+0juvjvLGWeAqsfmzf2UyyWiUUUEVq1KsnVrG9u2RYYFlJtvhkIBrrkmDFKvLbubTfcu5NT3bSLRvJn2nIc8voJjj/sNiy94kf98qcjh74lxYdNRuKkFFPI64+WAJlolwtRGVZf4RMQVkcNEZPnAY5rO/wPgHftp87Cqnlx5WHAyZgyqkMvl+e1vczz+uIPjxHj44TJPPpmiWBz7Uly5DL6/Hkjyy1824DgJ/u3fulB9nCCARx9NEASQy3XS25vk5ZfBdRM89pjS29vH8uV7jx0EYXB68UW46abw/RO/WMzpV20g0VgmHiSISpTDz9rKwnPWUSgVoATFcpGO8zZw+nu2EvjVLQ8/VQsjCzklcQpn153NKYlTLDjNQdUUi/0T4EvAHhi8aKvAiVM9uao+JCIrpnocY0w48jn99B5yOdiwoY3nnovh+7s4+eRe3v725jFL7ESjcPnlj3P77eD7Z3DHHWXgARznES644Eo2blzCc89tx/N2smJFlHR6Cd/7Xjue9xonnpjk/PPbEAm/ShwnHDnddFMYpD79abj6Z6/gunDYsgBoxy/7ZINwOYwGZ281CF99PIInBV4AACAASURBVNejoXHuVYgwtVHNCOrTwDGqeryqvqnymHJwmoCzROR3IvJLETl+tAYicrWIrBORdV2ZzCx2zZiZVS4XyOeru5ujVMpRLuc45xwHx2nDcZoQiXHmmWWKxbGPsW3besrlJJdf3gycBpwN+Jx7bi8nnbQbEReRFlTTXHppPyINqBYQaeTss5V8vo9CIU25HGbADQSpAW3LUxyytIBIWKIoEovgxlycmEMkFhl8xGIxym55tC5OSi6TI5/LT9vxzOyrJkC9DvTvt9XMWA8crqonAd8Gfj5aI1Vdo6qrVHXVosbGWe2gMTPF9wOSyR2kUrspFrP7zZbLZntRhbVr2xAJ/2o7zgIeeyycixqa0RcMuYr26quP43nw85+vIryo4gFH85vfONxzz3OVViUgyp13xvC8Lfj+HkSiPPII9PXtorf3dfr6thMEPr4fjqAG9G1rpnN7Ylj/BdknzXs6s+hKxRKduzrp3NmJ53nTckwz+8YrdTSwrPtmwiXf/wsYrIOiqt+c4b6hqqkhr+8Ske+KyMJK6SVjDlgPPQTpdD+nnupXkh16WL++YcyyQqVSjmIxx2OPwXPPBZx6ai/nnQcPPqisWydAmXe8I0V9fcuwJIbt29eTTif5r/8CyOC693PVVd388IcFgsBhw4btnH32w7z1rQm+/e0IXV052tq6+ehHD2Pduiz339/MY4/18YlPxGlqaiedTvL3f7+Azk44/vjwHP9291Gc88e/5fVt0Lq4ciOuhNEq7eXCCQMJH7lMlAfKUy97lezdRdFPghtQt6WRpsZDkbKlkM83481BDSzrvq3yiFUeMEvLbYjIYmCPqqqInE444rN1k80BTRUKhYC1a3spFuHss4Xf/KbA889nOfPMhlFLARWLWUQgFoMTTujj1FMhm4VVq6BUCrcXixkSiZZhSQynnfYS69YNHOUpLr5Y2bath3PPhQcfBPDo73+CbPZEgkCBPeRyHqlUhM2bY/h+jkKhwOOP+1x4YTv3399HMtnKIYe4fPzj4eW+973pZH7yjVbO+PDT1NcJxZ5mdv36VAA63v408QWpwW2pjSum/PtreMMmms7cAkEDQdmlGPVxDvfYfseZ03J8MxOuHHWr7O9GPhF5n6r+2/62TYaI3Aq8DVhImITxJSAKoKrfE5FPAdcQXnPIA59R1cfGO+aqww/XdV/4wlS7ZmbRmht64HOfq3U35pRMpo977uliw4YEjtOE73fx5jcnuOyy5aPeI+T75cpcle4TwAbex+NNRKNxgmBvEoPn7QaeYflyeMc7IBKBcjmH55XxfXjhBZetW9+I40Tx/X48r5v+/gQiyxHpYsmSHg4/vJ1XXllaOVeOVasWcMklC3D3rpS+z31RM6nz2P9L3uujobEF3/cpZgskWmO0NHYQf+i9s9MJMyEf+5g8raqrRm6v5j6ozwEjg9Fo2yZMVUcPm3s/vxG4carnMWY+CYKAfL6Xs8+G559fgEg9In2ccUaBUilLNFqHiAzLynPdKI2Noy/cN/S4sDeJ4dOfhkhkMfAOrr129ABy5pnw9a+DquI4W/nEJ5r5+tc7gEZUC/ze7yVpaUmwZcthqBbx/RynndaHSCuwN0LNVnAql4sUtBvROHUtDagfUMwWKPSXaFjQx9jLF5q5aMz/bUTkEhH5NrBERP5xyOMHhCMaY8wMyOf78X2fJ59M4DgNiAiO08Zjj0EyuYvu7s0kkzsndMxyuUBX16ukUnsGR1BDDdyzNNTQdZxUUwRBme9+NwY0DQbHX/wCHn88nERynDpE6nn00YBsNjm5H36KstkeJNdIXWsMN+ISiUeJNyRQ8cjvtMpu8814f2I7gaeBQuV54HEncPHMd82YA8NEFvkLgoBstpfHHoNnn21l1SqPa6/1OP30Rp591uG++/ZQKGQolbKUSnnK5ZH77xtoggBSqW5AyWb7+c53Sjz/PBx7LHzrW+Hzxo3w3e/u3VcV7r0XnnwSTjtNufrqXnwfurpaWLDA44YbUhxxhPLaaxEeeSTKiSf2ce21Hqed1sKzz8J99/Xh+/6Uf3cTUS4XKRYzuFtPIN4cw9MCnueRaI2C61N69gh83/5tPZ+MeYlPVX8H/E5E/kVVp+/mBGMOIg89BMXi3lp1+1vkr1hMo+oTi8Hxx+/mpJOgpwdOOgnuvbfEunUZTj3VJx6v55/+qYcXX1zK4sXw+c+HweW668Lz3HBDeFkt3JbH93N89rPhtr6+HiKRDuLx8P3HPx7ut2PH8LmrtWvD/d/ylgzpdJnFiyGX62LRoi527tzDxRfn6OkB193B0Ud30dOzhFNOCTMEo9GAQiFFQ0PbrP2uc7lwoUO3ewnpe5XgiOfR+gySaySy5QzcniXkG5I0NlrFiPlivDTzDVSy9Ua7A32Wb9Y1Zt5RDYPTU0+F71evHr667GjZeK4bxXWjnHHG8GSHIIBotI90OsKPf9zOJz/p8MILOcrlPLt311Euw/e/D6nKjRnf+Q588pPhc39/mPh6220tvP/9KUqlNMXiArZvj+H78Otf7w1m994LF14YPg8c6ze/ibJqVYwlSwK6u2HJEojHG1D1ueqqgQSMehwn/Dp5y1vAcYRIJMZsikYTlEphNfRY3wroWzHsc3GFSMRmoeaTMbP4ROTwystPVp5/XHn+AJCbq3XxLItv/jmQs/iGLnk+oJpF/kbyvBKdnVv57neFrq4VhGuF9hCL1aO6dPBYxxwTnvOllwbOn2fFitcRcdiyZSXQhWo/7e1NxOMdg/uddlr4vHbt3nOOtm0yfTdmf8bK4htvwcLXVPU14BxV/UtV3VB5XIfNQRlTlaks8jdUNtuL68JnPtNEeCugCzhce22O8A6M0Cc+EY6c9urhAx+Aj350oLrEAkSEa65JEwRJfH8Xqj4XXhiOnIYabdvq1eFlyP7+3YNZgcbMlGrSzBtE5C2q+giAiJwNWDVHY6owNBNuwH33VRekBi7xeV6JQiGF7wvf/rYDJIE00Mw3vtGPag8i4X1IwxMd8kCOn/zEIZEI54JEIgRBMzfemMR1X8R12wGHe+45dJ/+3Hvvvn265x6fk08O60a7bpSGhgU2mjIzppoA9RHgFhFpqbxPAh+euS4Zc2AYenlv4NLY0Mt94wWpockV2Wwvngc33KCUyy/R1hZw1VXwne9kKJcbcN0c3/hGnn/+5zqeey487/HHwwc+0MMtt8Arrwiwk2OPhQ9+EG64waenJ01bWz9XX93IU0+luOuudkSiXHrp3jmoX/867N8FF4Tb1qwJs/MymYBzzoFsto/HHmsjkXDGXGvKmKnY740Bqvp0pVjricBJlXWZ1s9814yZ38LkgeHzNqtXh+/j8bGD09DkivvuC0dQTzwBntcPZHnjG8sEQZ7W1i7Ao6EBREpcc014XNcN56J8v8QRR4Dj+MRiOa64Iofn5Vi6tIDj9OO6YTIDKCK9tLfv7eeFF8LKlXDEEXsv861Y4QNJtm8PkzkefTTgiSf6xl1rypipGC9J4r+r6k+GFI0dZjaKxU6GJUnMPwdykgTsm603WvbeaPsMjLZUfYIgz3HHbcX3fTZtOqxy42yGk05q5V3vOoR4PFyB1vfD/datC1fBVS1xyinhKGig9FA2m+See7rYuDFBJHIEnreVN71JuOyyFUSj0WF9gL19Tae7ueeeXp57rh7HWYDvv85JJzlcdtlKXNdugjWTN+EkCfbOMzWN8TDGVGFkMKpmzmZockW4HlOZt741xoUXthGJLCISWYrj1HHOOSUikb1BxXXhoosG9ovgOPVcemk9dXX1xGL1RKN1eF6B886rw3WXIBLDcZo45xwln+/dpw9709x98vkk55wTLuExUDXirLMC8vm+yf5qjBnXeDfqfr/y8m9UtTBL/TFmxk1mRDMbhvZjoJJD+DrA93t55BGorw/r7YnEEWnksccyrF7dR3PzosH9xkvKCMsoeTzxRBzHCddOC9eMSnP22SkaGtpx3Sgj5XJ9BEHAk0/W4zh1Q/bLcc45fdTXt+HMVsE9c9CoJkniORHZAzwMPAQ8qqq1WsDQmCmZaGWHWvQLwptuX3wRjjsOPvCBfu6+2+ehh1wcx+fCC1Ocfz7cf3+sslRGkssua8N1I+MmZbz97Uom01tZMyrOqlUp3va2cFmNtWtjQIm3v72XlpZDh/UtCHyy2eQY+4ULHF54YR9NTeMXqzVmovYboFT1KBFZDrwVeBfwXRFJqurJM947Y6bRZCo71KJfb387dHaG6ziVy5DPpyr98mlq2s0pp0A6PXStJ6VYTNPQ0DZqUgaEAbhczqHqVdaMSnHKKSnSaQbLE8ViUCik9glQxWIGCAbXmho4/9D9isWUBSgz7apZD2opYXA6DzgJ6AUeUdUbZr57E2dJEvPPbCZJTFdlh9noV0sLJJOgmkY1w0knhaO8oVfSVMFxnGGX5sa6hBkEAZlMN6r+mG2i0Trq61uH9c33PbLZHlSDMfeLxRqoq2uezl+JOYhMZT2obcBa4Ouq+vFp75kxs2hgVDE0ENQ6OMHo/frEJ8KiryJhXtJll1WfYDHae8dxaG4+ZMJ9c90Izc2H7r+hMdOsmlnNNwM/Av5QRB4XkR+JyEdmuF/GzIixkgiqvY8nl0vS1fUq5fL05g2N1q+bbhrer/CeKI/u7i2kUnum9fzGzEXV3Kj7O+CHwD8D9xNe6vtf03FyEblFRDpF5LkxPpfKIomviMizInLKdJzXHJxGVnb4/OfD54EbYvcXpDzPJ5PpJggGnkdvN9p6TKP1Zejre+/d26/PfQ5aW8Mkiba28P1AP++6qxfPK5PP91MuF0ddZNCYA8V+A5SIrAMeBy4HXgTOVdUV03T+HwDvGOfzS4A3VB5XAzeN09aYcU22sgPAzTfDd77Th++HEaFQyPGd7+S4+eZ92w1dnXZg9dqh7R56aN+AuGULLFwY9sdx4IQTwoUE3/Sm8P3q1bBggceWLXsTaO+7r4ebbgqPB3sD8MB7Y+a7ai7xXaKqb1LVj6nqjysVzqeFqj5EmHQxlncDP9LQE0CriHRM1/nNwefcc4fPOQ0EqfFSzIMA8nmfl19OcuutEI02cOutsGlTL4XC8GBUKIQjn4EgddNN4fuBdiPLGA0Ele7usKzQgPPOg2uuGd6vww7rpa9PefLJelSFjRszbNxYZMOG8NgDo0MrPWQOFNWkmXfNRkfGsAR4fcj77ZVtu2rTHXMgmGhlB8eBq67q45/+KWDz5nq++MUOYDMrV+b4yEdyOE79YLtrrtkblD796XD/Y48Ntw9k3w2kfj/11N6kiNEyCYdm6wWBx+mn9+N5sGHDIn73uxRB0MdRR/XQ13cYN9ww9nGMma/m+q3fo/012+ffhiJytYisE5F1XZnMLHTLHEyCwKdQSHLllRCup+QAbVx5JfuUBxoIUkMNDU4wuTWistleRJQLLmhCJI7jtAHCFVdkgGLVxzFmPpnrAWo7sGzI+6XAzpGNVHWNqq5S1VWLGhtnrXPm4JDLhXNPt91Wj0hdZWsbt97qUCjkBpcZh72X9YYaOicFE88k9H2PfL4fVXjiiXZgoM5eK7feCr7fU9VxjJlvxgxQIvKe8R6z1L87gasq2XxnAv2qapf3zKwJM/bCuadXX1WOPHIPX/3qHo46qovNm11uvRXS6d5K272X9449Fr71rfB56JzUZDIJs9leVJXHH3d56qkkJ564h09+cg/NzWU2b4ampgyf/WxxQhmJxswH481B/d44nylw+1RPLiK3Am8DForIduBLQBRAVb8H3AVcCrwC5ID/MdVzGjMRnldEJCzzs3JlniuuyFMswhVXwK23hmV+PC+PquI4QiIxfM5pYE4qkdh7mW+8ckSjXZ4rl/OVKg8+J5zQz2mnhYkQRx4ZBr2jjwbfz7N6dXzc4xgz3+y31NF8Y6WO5p+5vh5UoZCprMk0MnEhfB+JxIlGE/tsH+s9TKyiuueVKJfzo7YLjy0kEk2IyJypzG7MREyl1BEi8k7geGDwb6GqXj993TNm7kokJjavOTIYjbYKxUQyCSORGJFIrKpzW3AyB5JqbtT9HnAF8CeEWXXvAw6f4X4ZY4w5yFWTxXe2ql4F9KnqV4CzGJ5ZZ4wxxky7agJUvvKcE5HDgDJwxDjtjTHGmCmrZg7qFyLSCvwtsJ4wg++fZrRXxhhjDnrVBKj/rapF4N9F5BeEiRLTu9aAMcYYM0I1l/geH3ihqkVV7R+6zRhjjJkJY46gRGQxYWHWOhF5M3vr4jUD9bPQN2OMMQex8S7xXQz8EWH9u28O2Z4CPj+DfTLGGGPGDlCq+kPghyLyXlX991nskzHGGFNVksSjInIzcJiqXiIibwTOUtWb97ejMdW4+pCfs+aGcRrM4TJIxpiZU02A+ufKY6DA3UvATwELUPOUqpLM5WhKJIi4bq27Ax/5CFeP8dGaG3rG+MQYc6CrJotvoar+KxAAqKoH+DPaKzOjujMZujIZdqdSte6KMcaMqZoRVFZEFlBZyXZgXaYZ7ZWZMf7XvkayP/zjywF5x6FOBJqawsWJjDFmjqgmQH2GcOHAI0XkUWAR8Psz2iszY3pTKbS+HiH8F0ePCEsjEUina901Y4wZZr8BSlXXi8h5wDGE90JtUtXyjPfMTDs/CEhW1v9a4rrs9H1yquSDgLr97GuMMbNtvwFKRBLAJ4C3EP6j+2ER+Z6qWrmjeaY3m0WBBhHqHYdWVXqDgJ4gYGmtO2eMMSNUkyTxI8LFCr8N3Ai8EfjxTHbKTD8/CEjmcgAsqGTutTkODoSjqANsZWVjzPxXTYA6RlU/oqoPVB5XA0dPx8lF5B0isklEXhGR60b5/I9EpEtEnqk8/ng6znswGhg91REOmz1VFGiqLPfaYwHKGDPHVJMk8VsROVNVnwAQkTOAR6d6YhFxge8AFwLbgbUicqeqvjCi6U9V9VNTPd/BbOC+J4B8QwObh6aXp9OgSk6E0nXXERtYM9yy+owxNVZNgDoDuEpEtlXeLwc2isgGQFX1xEme+3TgFVXdDCAitwHvBkYGKDMN6mMxip4Hn/jE8A/+9m+hoQEXcFwXBgKUZfUZY2qsmgD1jhk69xLg9SHvtxMGw5HeKyLnElaw+HNVfX2UNmYcIsKStrbRP3RdiFTzv4ExxsyuatLMX5uhc8so20ZOhPwncKuqFkXk48APgQv2OZDI1RBWy1ne3j7d/Zyz/CCgM52mOZGgIR6ver+y79OVTtNWXz+h9PJiuUxPNsvCxkZiFtSMMTOsmiSJmbIdWDbk/VJg59AGqtpTWc0X4P8Cp452IFVdo6qrVHXVosbGGensXNSTyZAuFNidSqETSHLozmTIFIvsmWCpo850mkyxSKdd/jPGzIJa/jN4LfAGETkC2AG8H/jDoQ1EpENVd1XeXgZsnN0uzl3e175Gf6VkkQ8kRWhznOHJDR//OIwIXEUgDdDSQglI9/fT1NsbfjhW4divf51cKkU+CICwRFLOcahvbrZECmPMjKlZgFJVT0Q+BfwKcIFbVPV5EbkeWKeqdwJ/KiKXAR7QS7iAomFvyaKoCGVVeoHWSAQZOrpR3Zv0MLBfJWBFGxooq9LT30/T/k6WTtNTVweqe88nQr2NpIwxM6imEwmqehdw14htXxzy+nOALQY0guf79FcCzWGuyx7fp6BKUpUxUiEAKKqSJpz8W+q6bPd9So5D2nVpCgJYsmRv40xm8OXAjbwusMx12ep55FTJqVI/Ez+gMcZQ2zkoM0kDN902iuCp0loZJfX6Pl4QkC0WR9+v8twCREVoH7hJl/DG3VzlEt5IPZXtbY5DZOBS4pDtxhgzEyxAzTOe79OfzwNhkNlRGU0lRPCBF4OAHcnkYJsBQ0dPA3mOzSJEgRLwoirbfZ/siKCTK5XIE16Dba0EpoESSfnK58YYMxMsV3ieGRg9Rfv72dXfjwdkgDbCgNEFLPviF+kFmgGpXAocGD3FCZMcqASiRBDQFwQkgaV79tBDWEx2QE/lUl9chIzqYNJFQoRc5fP6gyi13xgzeyxAzTOpQlhEvo8wGA0YGB35hAFIgBTh5byg8jlAAdgNwypFJIEy4SgLEbKqNIhQ9n3y5TI0NJDLZsPANlRDA/lymbLvE50LS8cbYw4oFqDmmUVNTeSKRZJAYyTCQsJglfU8AFqBw4FuGBxFOcuXs9D3GbwYl80OpodnvvY14vE4zSIc5rr0qNIjQkOhQNR1aW9owPuzPxuzPxHXteBkjJkRFqDmmZa6OgRoFSEmwuGEAeo5wjIcRwHtIqRUKbF3FNU+NIg4DrS0ALAVWOS6HOq6NIuQ9DwKquEoClh4EN34bIyZWyxJYg7wfJ/NXV10VlHZQVXpyWYBaFBlM5AOAkqEyQ47gPtViVbadwG3Z7P8IrfPBTrShQIlwmSLZhFEZDCQjZahlykUeKWzk0zB1qo0xsw8C1BzQE82ixcEJPN5iuXyuG3ThQJl3ydGGJB8YJsI9YQJEM8RziftAmKEpTd2+j57fJ+XRmTcDSRAtDsOUkmMaBXBJZyrGpqurqp0ZTIEleeJlFYyxpjJsEt8NVb+2tdIVUoWAfSK0DGyZNGf/AlU5pgGKkFkVNnheZSATqCRMBFiD9BPWOjwBMIS8F4ySR3wO/auNJn52McG56T29PezB4ZXnYhE6M1mwyK0X/86qf5+ypVzl4G049BspY6MMTPIAlSNDZQsqhchX7lXqT0SIT60jJDnDS6J4VaCRF9lpFVPOAxOEl7OcwlTzrPAI4QjoQWEK+mmCAPW0ZV9hBHl4xcv3vs6l8Ot3PekqRS99fWgSmMl3bxHhKZUatSS9MYYMx0sQNVQ2fdJVQLOIa5LMghIBgG9QUDHGPssE6EQBChhgFlJOIL6LWHG3tGEI6cHCYPREsIli/PAk+wdRdUDb2BEgBq6hIbjIK2tAKRUKasSE6HDdXnN9ylVgmnzlH8LxhgzOpuDqqGBm26bHIdYpfSQECY9FMeZ4+kVQQhHShGggTBI5YEOwpFSnnCOqgAcCRzH8FHUABn6qCRKDDwgnHsauKy4oDJX1T6k1JHNRRljZooFqBop+z6pSjmiBZUv/IgILZXXvWN88RdVyTC8ZNFOwgSJVsIsvm7COSgHWER4+c8FTqy0/90E+pkqFCgDMRGaKn1rqqS4lwmTNowxZibYJb4aGRg9uUDfkJRur7MTfJ+0Ku3XXUdcJCxLVC5DNEpPpZ1LGIgKwAbCahEZwkt9OWALECWcl/opcEylDQyfixqPqtJbSWkXYI/vD342MPfUk83SlEgMjriMMWa6WICqkUIlycFvaKB/yNIWeF6YTReJUGhoIO440NcX1sDzPPKVkZVHmK3XQ5i9p5XXHmEmX4pwVOVX3o/8g97NKAFqaD+amvCCgLLvQ0MDxWyWfWqkNzRQ9n38ICBi1SSMMdPMAlSNdLS0hHXu/vIvh3/w5S9DYyMO4XIaACxbFgaPG25gablMoZJyDnAosKC/n94vfYkexyEGtAcBzxJe4juUsGp5s7P3aq7r+6z49rchFhu3j1FgaVsb5ZF9HNrGdS04GWNmhAWoGolFIsQio/z6HSd8jCEejRKPRodta04k2FqpArEYaI5EWKxKtlymHVg4oj2q+w1OA+qrbGeMMdPNkiQOAOmBRAYYXL59QeU5CfiWaWeMmYdqGqBE5B0isklEXhGR60b5PC4iP618/qSIrJj9Xs5tw2rzESZN5FVRwoAVEBaTNcaY+aZml/hExAW+Q3gf6XZgrYjcqaovDGn2EaBPVY8SkfcDfwNcMfu9nUVNTcPWahq2fRS5UilMZIhE6PO8UYNRv+excEQZI2OMmetq+U11OvCKqm4GEJHbgHcDQwPUu4EvV17/DLhRREQP5LtDJ1jbLh6J0BCLEVx//Zht6mIxsGUzjDHzTC0D1BLg9SHvtwNnjNVGVT0R6SecXuke2khErgauBlh+kC0/HnFdlrS11bobxhgz7Wo5BzXanZ0jR0bVtEFV16jqKlVdtchGCsYYc0CoZYDaDiwb8n4pYdWeUduISIRwcdjeWemdMcaYmqplgFoLvEFEjhCRGPB+4M4Rbe4EPlR5/fvA/Qf0/JMxxphBNZuDqswpfQr4FWFpuVtU9XkRuR5Yp6p3AjcDPxaRVwhHTu+vVX+NMcbMrprmG6vqXcBdI7Z9ccjrAvC+2e6XMcaY2rNKEsYYY+YkC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmJAtQxhhj5iQLUMYYY+YkC1DGGGPmJAtQxhhj5qSaBCgRaReRe0Xk5cpz2xjtfBF5pvK4c7b7aYwxpnZqNYK6Dvi1qr4B+HXl/Wjyqnpy5XHZ7HXPGGNMrdUqQL0b+GHl9Q+B/1ajfhhjjJmjahWgDlXVXQCV50PGaJcQkXUi8oSI/P/27j1GrrIO4/j3sS3SIgRICVYKVBSrcpHLipEiQS4GIkETiYCoYEJQ8AIxiIiJaIgJ/GO8IikFiqFysYgiMVzkpmBEWmy7FCh301qkoAKtQVB4/OO8G9fS3T0z7e45M30+yWbPnDn7nmcnu/Ob88477ztiEZN0ajlu0bPr1o1H3oiImGCTx6thSb8B3ryBu77eQTO72F4taTfgdkmDth9f/yDbc4G5AAO77uquAkdERKuMW4GyffhI90l6RtIM209LmgGsGaGN1eX7E5LuBPYFXlegIiKi/zTVxXcDcFLZPgn45foHSNpO0hvL9nRgDvDghCWMiIhGNVWgLgCOkPQocES5jaQBSfPKMe8CFklaCtwBXGA7BSoiYjMxbl18o7H9N+CwDexfBJxStn8P7DXB0SIioiUyk0RERLRSClRERLRSClRERLRSClRERLRSJxzhogAABwJJREFUClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLRSClRERLSSbDedYZOStBZY0XSOLk0Hnms6RBeSe+L1avbknni9kH1X2zusv7ORFXXH2QrbA02H6IakRb2YPbknXq9mT+6J18vZ08UXERGtlAIVERGt1I8Fam7TATZCr2ZP7onXq9mTe+L1bPa+GyQRERH9oR+voCIiog+kQEVERCv1VYGSdKSkFZIek3RO03nqknSZpDWSHmg6Syck7SzpDkkPSVou6YymM9UhaUtJf5S0tOT+VtOZOiFpkqQ/Sbqx6SydkPSUpEFJSyQtajpPXZK2lbRQ0sPlb/39TWcai6TZ5XEe+npR0plN5+pU37wHJWkS8AhwBLAKuA84wfaDjQarQdLBwDrgJ7b3bDpPXZJmADNs3y9pa2Ax8NG2P+aSBGxle52kKcDdwBm2/9BwtFokfRkYALaxfXTTeeqS9BQwYLvtHxr9P5KuAH5ne56kLYBptp9vOldd5bnxL8D7bP+56Tyd6KcrqAOAx2w/YfsV4GrgIw1nqsX2b4G/N52jU7aftn1/2V4LPATs1GyqsbmyrtycUr564pWapJnAh4F5TWfZHEjaBjgYuBTA9iu9VJyKw4DHe604QX8VqJ2AlcNur6IHniz7haRZwL7Avc0mqad0ky0B1gC32u6J3MB3gbOB15oO0gUDt0haLOnUpsPUtBvwLHB56VadJ2mrpkN16HjgqqZDdKOfCpQ2sK8nXhX3OklvAq4DzrT9YtN56rD9qu19gJnAAZJa37Uq6Whgje3FTWfp0hzb+wFHAZ8vXdttNxnYD/ix7X2BfwK99P72FsAxwM+aztKNfipQq4Cdh92eCaxuKMtmo7yHcx2wwPbPm87TqdJdcydwZMNR6pgDHFPey7kaOFTSlc1Gqs/26vJ9DXA9Vbd8260CVg27wl5IVbB6xVHA/bafaTpIN/qpQN0H7C7preVVw/HADQ1n6mtlsMGlwEO2v9N0nrok7SBp27I9FTgceLjZVGOz/TXbM23Povr7vt32JxuOVYukrcpAGkoX2YeA1o9atf1XYKWk2WXXYUCrBwGt5wR6tHsP+mg2c9v/kfQF4GZgEnCZ7eUNx6pF0lXAIcB0SauA82xf2myqWuYAnwIGy/s5AOfa/nWDmeqYAVxRRje9AbjWdk8N2e5BOwLXV69pmAz81PZNzUaq7YvAgvLC9wngMw3nqUXSNKpRzZ9tOku3+maYeURE9Jd+6uKLiIg+kgIVERGtlAIVERGtlAIVERGtlAIVERGtlAIV0SFJJ0t6S43j5ks6tu7+TZDr3GHbs+rMjl+yPCnpc5vg/MeVlQQyZD82iRSoiM6dDIxZoBpw7tiHbNBXbF+8sSe3fQ1wysa2EzEkBSo2a+VK42FJV0haVtb9mVbu21/SXWVy05slzShXPgNUH9xcImmqpG9Iuk/SA5Lmlhk26p7/deco+++UdGFZt+oRSR8o+6dJurZkvUbSvZIGJF0ATC2ZFpTmJ0m6RNWaV7eUWTPGyrOjpOtVrZW1VNKBwx6jeeV3XCDpcEn3SHpUUi9MWRQ9KAUqAmYDc23vDbwInF7mGPwBcKzt/YHLgG/bXggsAk60vY/tl4Af2n5vWctrKlBrjaaRzjHskMm2DwDOBM4r+04H/lGyng/sD2D7HOClkunEcuzuwI9s7wE8D3ysRqzvA3fZfg/VnHNDs7G8HfgesDfwTuATwEHAWXR/5RYxqr6Z6ihiI6y0fU/ZvhL4EnATsCdwa7kgmgQ8PcLPf1DS2cA0YHuqJ/Vf1Tjv7DHOMTT57mJgVtk+iKpQYPsBSctGaf9J20NTUA1vYzSHAp8u7b8KvCBpu9LWIICk5cBtti1psGa7ER1LgYp4/bIsplq+ZbntUZf3lrQlcBHVSrErJX0T2LLmecc6x8vl+6v873+1dvfhsJ8famPMLr6abb027PZr5Hkkxkm6+CJgF0lDReIEqiXgVwA7DO2XNEXSHuWYtcDWZXuoGD1X1sXqZHTeaOcYyd3Ax8vx7wb2Gnbfv0u34ca4DTittD9J1YqyEY1IgYqolqo/qXSXbU+1ON0rVMXmQklLgSXAgeX4+cDFZQb3l4FLgEHgF1TLvtQyxjlGchFVUVsGfBVYBrxQ7psLLBs2SKIbZ1B1WQ5SdQuOVTAjxk1mM4/Nmqql6m8sAxxarywRMsX2vyS9jeqK5x2l2HXT3nyq33/hJsp3CHCW7VoDRSJGk77jiN4yDbijdOUJOK3b4lS8AJwvafrGfhZK0nFUow17dUn6aJlcQUVERCvlPaiIiGilFKiIiGilFKiIiGilFKiIiGilFKiIiGil/wJzjRsjc4VXagAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "forest = RandomForestClassifier(criterion='entropy',\n",
    "                                n_estimators=10, \n",
    "                                random_state=1,\n",
    "                                n_jobs=2)\n",
    "forest.fit(X_train, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined, y_combined, \n",
    "                      classifier=forest, test_idx=range(105, 150))\n",
    "\n",
    "plt.xlabel('petal length [cm]')\n",
    "plt.ylabel('petal width [cm]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/random_forest.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K近邻"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "knn = KNeighborsClassifier(n_neighbors=5, p=2, metric='minkowski')\n",
    "knn.fit(X_train_std, y_train)\n",
    "\n",
    "plot_decision_regions(X_combined_std, y_combined, \n",
    "                      classifier=knn, test_idx=range(105, 150))\n",
    "\n",
    "plt.xlabel('petal length [standardized]')\n",
    "plt.ylabel('petal width [standardized]')\n",
    "plt.legend(loc='upper left')\n",
    "plt.tight_layout()\n",
    "# plt.savefig('./figures/k_nearest_neighbors.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
